xen/events: use virt_xxx barriers
PATCH 1/1 xen/events: use virt_xxx barriers
drivers/xen/events/events_fifo.c uses rmb() to communicate with the other side.
For guests compiled with CONFIG_SMP, smp_rmb would be sufficient, so rmb() here is only needed if a non-SMP guest runs on an SMP host.
Switch to the virt_rmb barrier which serves this exact purpose.
Pull in asm/barrier.h here to make sure the file is self-contained.
---
This is on top of my series:
arch: barrier cleanup + barriers for virt
and will be included in v3 of the series.
drivers/xen/events/events_fifo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/xen/events/events_fifo.c +2 -1
@@ -41,6 +41,7 @@#include <linux/percpu.h> #include <linux/cpu.h> +#include <asm/barrier.h> #include <asm/sync_bitops.h> #include <asm/xen/hypercall.h> #include <asm/xen/hypervisor.h>
@@ -296,7 +297,7 @@ static void consume_one_event(unsigned cpu,* control block. */ if (head ==0 ) { -rmb ();/* Ensure word is up-to-date before reading head. */ +virt_rmb ();/* Ensure word is up-to-date before reading head. */ head = control_block->head[priority]; }
Signature · 1 line
MST
Quoted 9 lines · Michael S. Tsirkin
drivers/xen/events/events_fifo.cusesrmb()to communicate with the other side.For guests compiled with
CONFIG_SMP,smp_rmbwould be sufficient, sormb()here is only needed if a non-SMP guest runs on an SMP host.Switch to the
virt_rmbbarrier which serves this exact purpose.Pull in
asm/barrier.hhere to make sure the file is self-contained.
Thanks!
David
Quoted 9 lines · Michael S. Tsirkin
drivers/xen/events/events_fifo.cusesrmb()to communicate with the other side.For guests compiled with
CONFIG_SMP,smp_rmbwould be sufficient, sormb()here is only needed if a non-SMP guest runs on an SMP host.Switch to the
virt_rmbbarrier which serves this exact purpose.Pull in
asm/barrier.hhere to make sure the file is self-contained.
Thanks!
David
kbuild test robot
build botreproduce:
Hi Michael,
[auto build test ERROR on v4.4-rc8]
[also build test ERROR on next-20151231]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
url: https://github.com/0day-ci/linux/commits/Michael-S-Tsirkin/xen-events-use-virt_xxx-barriers/20160104-194916 config: x86_64-randconfig-x008-01040711 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64
All errors (new ones prefixed by >>):
drivers/xen/events/events_fifo.c: In function 'consume_one_event':
>> drivers/xen/events/events_fifo.c:300:3: error: implicit declaration of function 'virt_rmb' [-Werror=implicit-function-declaration]
virt_rmb(); /* Ensure word is up-to-date before reading head. */
^cc1: some warnings being treated as errors
vim +/virt_rmb +300 drivers/xen/events/events_fifo.c
294
295 /*
296 * Reached the tail last time? Read the new HEAD from the
297 * control block.
298 */
299 if (head == 0) {
> 300 virt_rmb(); /* Ensure word is up-to-date before reading head. */
301 head = control_block->head[priority];
302 }
303
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xen.org/xen-devel
kbuild test robot
build botreproduce:
Hi Michael,
[auto build test ERROR on v4.4-rc8]
[also build test ERROR on next-20151231]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
url: https://github.com/0day-ci/linux/commits/Michael-S-Tsirkin/xen-events-use-virt_xxx-barriers/20160104-194916 config: x86_64-randconfig-x008-01040711 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64
All errors (new ones prefixed by >>):
drivers/xen/events/events_fifo.c: In function 'consume_one_event':
>> drivers/xen/events/events_fifo.c:300:3: error: implicit declaration of function 'virt_rmb' [-Werror=implicit-function-declaration]
virt_rmb(); /* Ensure word is up-to-date before reading head. */
^cc1: some warnings being treated as errors
vim +/virt_rmb +300 drivers/xen/events/events_fifo.c
294
295 /*
296 * Reached the tail last time? Read the new HEAD from the
297 * control block.
298 */
299 if (head == 0) {
> 300 virt_rmb(); /* Ensure word is up-to-date before reading head. */
301 head = control_block->head[priority];
302 }
303
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation