| /linux/tools/testing/selftests/kvm/loongarch/ |
| H A D | arch_timer.c | 32 struct test_vcpu_shared_data *shared_data = &vcpu_shared_data[cpu]; in guest_irq_handler() local 41 WRITE_ONCE(shared_data->nr_iter, shared_data->nr_iter - 1); in guest_irq_handler() 42 if (shared_data->nr_iter == 0) in guest_irq_handler() 54 xcnt_diff_us = cycles_to_usec(xcnt - shared_data->xcnt); in guest_irq_handler() 62 WRITE_ONCE(shared_data->nr_iter, shared_data->nr_iter + 1); in guest_irq_handler() 69 struct test_vcpu_shared_data *shared_data = &vcpu_shared_data[cpu]; in guest_test_period_timer() local 71 shared_data->nr_iter = test_args.nr_iter; in guest_test_period_timer() 72 shared_data->xcnt = timer_get_cycles(); in guest_test_period_timer() 81 irq_iter = READ_ONCE(shared_data->nr_iter); in guest_test_period_timer() 93 struct test_vcpu_shared_data *shared_data = &vcpu_shared_data[cpu]; in guest_test_oneshot_timer() local [all …]
|
| /linux/tools/testing/selftests/kvm/riscv/ |
| H A D | arch_timer.c | 23 struct test_vcpu_shared_data *shared_data = &vcpu_shared_data[cpu]; in guest_irq_handler() local 29 xcnt_diff_us = cycles_to_usec(xcnt - shared_data->xcnt); in guest_irq_handler() 38 WRITE_ONCE(shared_data->nr_iter, shared_data->nr_iter + 1); in guest_irq_handler() 41 static void guest_run(struct test_vcpu_shared_data *shared_data) in guest_run() argument 45 shared_data->nr_iter = 0; in guest_run() 46 shared_data->guest_stage = 0; in guest_run() 51 shared_data->xcnt = timer_get_cycles(); in guest_run() 58 irq_iter = READ_ONCE(shared_data->nr_iter); in guest_run() 70 struct test_vcpu_shared_data *shared_data = &vcpu_shared_data[cpu]; in guest_code() local 75 guest_run(shared_data); in guest_code()
|
| /linux/Documentation/translations/zh_CN/process/ |
| H A D | volatile-considered-harmful.rst | 40 do_something_on(&shared_data); 41 do_something_else_with(&shared_data); 44 如果所有的代码都遵循加锁规则,当持有the_lock的时候,不可能意外的改变shared_data的 47 它知道在shared_data里面将有什么,但是因为spin_lock()调用跟内存屏障一样,会强制编 50 如果shared_data被声名为volatile,锁操作将仍然是必须的。就算我们知道没有其他人正在 51 使用它,编译器也将被阻止优化对临界区内shared_data的访问。在锁有效的同时, 52 shared_data不是volatile的。在处理共享数据的时候,适当的锁操作可以不再需要
|
| /linux/Documentation/translations/zh_TW/process/ |
| H A D | volatile-considered-harmful.rst | 43 do_something_on(&shared_data); 44 do_something_else_with(&shared_data); 47 如果所有的代碼都遵循加鎖規則,當持有the_lock的時候,不可能意外的改變shared_data的 50 它知道在shared_data裏面將有什麼,但是因爲spin_lock()調用跟內存屏障一樣,會強制編 53 如果shared_data被聲名爲volatile,鎖操作將仍然是必須的。就算我們知道沒有其他人正在 54 使用它,編譯器也將被阻止優化對臨界區內shared_data的訪問。在鎖有效的同時, 55 shared_data不是volatile的。在處理共享數據的時候,適當的鎖操作可以不再需要
|
| /linux/tools/testing/selftests/futex/functional/ |
| H A D | futex_wait.c | 67 u_int32_t *shared_data; in TEST() local 80 shared_data = shmat(shm_id, NULL, 0); in TEST() 82 *shared_data = 0; in TEST() 83 futex = shared_data; in TEST() 100 shmdt(shared_data); in TEST()
|
| H A D | futex_waitv.c | 95 unsigned int *shared_data = shmat(shm_id, NULL, 0); in TEST() local 97 *shared_data = 0; in TEST() 98 waitv[i].uaddr = (uintptr_t)shared_data; in TEST()
|
| /linux/tools/testing/selftests/kvm/arm64/ |
| H A D | arch_timer_edge_cases.c | 50 } shared_data; variable 120 int h = atomic_read(&shared_data.handled); in assert_irqs_handled() 154 atomic_inc(&shared_data.spurious); in guest_irq_handler() 175 atomic_inc(&shared_data.handled); in guest_irq_handler() 184 atomic_set(&shared_data.handled, 0); in set_cval_irq() 185 atomic_set(&shared_data.spurious, 0); in set_cval_irq() 193 atomic_set(&shared_data.handled, 0); in set_tval_irq() 194 atomic_set(&shared_data.spurious, 0); in set_tval_irq() 225 for (h = atomic_read(&shared_data.handled); h == atomic_read(&shared_data.handled);) { in wait_for_non_spurious_irq() 247 h = atomic_read(&shared_data.handled); in poll_for_non_spurious_irq() [all …]
|
| H A D | vgic_irq.c | 32 uint32_t shared_data; member 827 WRITE_ONCE(args->shared_data, MIN_SPI); in guest_code_asym_dir() 832 } while (READ_ONCE(args->shared_data) == MIN_SPI); in guest_code_asym_dir() 837 } while (READ_ONCE(args->shared_data) != MIN_SPI); in guest_code_asym_dir() 842 WRITE_ONCE(args->shared_data, 0); in guest_code_asym_dir()
|
| /linux/tools/testing/selftests/kvm/ |
| H A D | arch_timer.c | 53 struct test_vcpu_shared_data *shared_data = &vcpu_shared_data[vcpu_idx]; in test_vcpu_run() local 67 sync_global_from_guest(vm, *shared_data); in test_vcpu_run() 69 vcpu_idx, shared_data->guest_stage, shared_data->nr_iter); in test_vcpu_run()
|
| /linux/Documentation/process/ |
| H A D | volatile-considered-harmful.rst | 31 do_something_on(&shared_data); 32 do_something_else_with(&shared_data); 35 If all the code follows the locking rules, the value of shared_data cannot 40 compiler might think it knows what will be in shared_data, but the 45 If shared_data were declared volatile, the locking would still be 47 to shared_data _within_ the critical section, when we know that nobody else 48 can be working with it. While the lock is held, shared_data is not
|
| /linux/Documentation/translations/it_IT/process/ |
| H A D | volatile-considered-harmful.rst | 38 do_something_on(&shared_data); 39 do_something_else_with(&shared_data);
|
| /linux/drivers/scsi/aic7xxx/ |
| H A D | aic79xx.h | 449 } shared_data; member
|
| H A D | aic7xxx_core.c | 588 q_hscb->shared_data.cdb_ptr = in ahc_swap_with_next_hscb() 1042 ahc_set_scsi_status(scb, hscb->shared_data.status.scsi_status); in ahc_handle_seqint() 1043 switch (hscb->shared_data.status.scsi_status) { in ahc_handle_seqint() 1074 sc = (struct scsi_sense *)(&hscb->shared_data.cdb); in ahc_handle_seqint() 2090 for (i = 0; i < sizeof(hscb->shared_data.cdb); i++) 2091 printk("%#02x", hscb->shared_data.cdb[i]); 6623 spkt = &hscb->shared_data.status; in ahc_calc_residual()
|
| H A D | aic79xx_core.c | 446 scb->hscb->shared_data.idata.cdb_plus_saddr.sense_addr = in ahd_setup_scb_common() 3578 for (i = 0; i < sizeof(hscb->shared_data.idata.cdb); i++) 3579 printk("%#02x", hscb->shared_data.idata.cdb[i]); 7341 shared_data.idata.cdb)); in ahd_chip_init() 8865 ahd_set_scsi_status(scb, hscb->shared_data.istatus.scsi_status); in ahd_handle_scsi_status() 8866 switch (hscb->shared_data.istatus.scsi_status) { in ahd_handle_scsi_status() 8960 sc = (struct scsi_sense *)hscb->shared_data.idata.cdb; in ahd_handle_scsi_status() 9032 if (scb->hscb->shared_data.istatus.scsi_status != 0) { in ahd_handle_scb_status() 9085 spkt = &hscb->shared_data.istatus; in ahd_calc_residual()
|
| /linux/drivers/net/wireless/intel/iwlegacy/ |
| H A D | 3945.c | 2201 struct il3945_shared *shared_data = il->_3945.shared_virt; in il3945_hw_tx_queue_init() local 2203 shared_data->tx_base_ptr[txq_id] = cpu_to_le32((u32) txq->q.dma_addr); in il3945_hw_tx_queue_init()
|