Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1300662 > unrolled thread
| Started by | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| First post | 2016-01-04 12:50 +0100 |
| Last post | 2016-01-04 13:00 +0100 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] xen/events: use virt_xxx barriers "Michael S. Tsirkin" <mst@redhat.com> - 2016-01-04 12:50 +0100
Re: [PATCH] xen/events: use virt_xxx barriers kbuild test robot <lkp@intel.com> - 2016-01-04 13:00 +0100
| From | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| Date | 2016-01-04 12:50 +0100 |
| Subject | [PATCH] xen/events: use virt_xxx barriers |
| Message-ID | <qNbOa-2VD-11@gated-at.bofh.it> |
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.
Suggested-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
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(-)
diff --git a/drivers/xen/events/events_fifo.c b/drivers/xen/events/events_fifo.c
index 96a1b8d..eff2b88 100644
--- a/drivers/xen/events/events_fifo.c
+++ b/drivers/xen/events/events_fifo.c
@@ -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];
}
--
MST
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | kbuild test robot <lkp@intel.com> |
|---|---|
| Date | 2016-01-04 13:00 +0100 |
| Message-ID | <qNbXS-2ZX-59@gated-at.bofh.it> |
| In reply to | #1300662 |
[Multipart message — attachments visible in raw view] — view raw
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
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web