linux/drivers/misc/vmw_vmci
Jorgen Hansen f42a0fd13b VMCI: Use 32bit atomics for queue headers on X86_32
This change restricts the reading and setting of the head and tail
pointers on 32bit X86 to 32bit for both correctness and
performance reasons. On uniprocessor X86_32, the atomic64_read
may be implemented as a non-locked cmpxchg8b. This may result in
updates to the pointers done by the VMCI device being overwritten.
On MP systems, there is no such correctness issue, but using 32bit
atomics avoids the overhead of the locked 64bit operation. All this
is safe because the queue size on 32bit systems will never exceed
a 32bit value.

Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Jorgen Hansen <jhansen@vmware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-02-07 21:36:02 -08:00
..
Kconfig Hoist memcpy_fromiovec/memcpy_toiovec into lib/ 2013-05-20 10:24:22 +09:30
Makefile VMCI: Some header and config files. 2013-01-08 16:15:57 -08:00
vmci_context.c
vmci_context.h
vmci_datagram.c misc/vmw_vmci: use kmemdup rather than duplicating its implementation 2015-09-20 19:27:58 -07:00
vmci_datagram.h
vmci_doorbell.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
vmci_doorbell.h VMCI: doorbell implementation. 2013-01-08 16:15:55 -08:00
vmci_driver.c VMCI: Use 32bit atomics for queue headers on X86_32 2016-02-07 21:36:02 -08:00
vmci_driver.h VMCI: Add support for virtual IOMMU 2013-08-27 21:42:12 -07:00
vmci_event.c VMCI: event handling implementation. 2013-01-08 16:15:55 -08:00
vmci_event.h VMCI: event handling implementation. 2013-01-08 16:15:55 -08:00
vmci_guest.c PCI: Move PCI_VENDOR_ID_VMWARE to pci_ids.h 2014-09-24 11:52:09 -06:00
vmci_handle_array.c VMCI: handle array implementation. 2013-01-08 16:15:55 -08:00
vmci_handle_array.h VMCI: handle array implementation. 2013-01-08 16:15:55 -08:00
vmci_host.c char: make misc_deregister a void function 2015-08-05 10:35:49 -07:00
vmci_queue_pair.c VMCI: Guard against overflow in queue pair allocation 2015-03-25 11:32:15 +01:00
vmci_queue_pair.h VMCI: Remove non-blocking/pinned queuepair support 2013-08-27 21:42:12 -07:00
vmci_resource.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
vmci_resource.h VMCI: resource object implementation. 2013-01-08 16:15:56 -08:00
vmci_route.c VMCI: routing implementation. 2013-01-08 16:15:56 -08:00
vmci_route.h VMCI: routing implementation. 2013-01-08 16:15:56 -08:00