From: Jan Beulich
Sent: Wednesday, August 27, 2014 15:39 PM
I'm curious about the difference. :-)On 27.08.14 at 09:30, <decui@xxxxxxxxxxxxx> wrote:
sync_set_bit() is only used in drivers/hv/ and drivers/xen/ while set_bit()
is used in all other places. What makes hv/xen special?
I guess this would really want to be used by anything communicating
with a hypervisor or a remote driver: set_bit() gets its LOCK prefix
discarded when the local kernel determines it runs on a single CPU
only. Obviously having knowledge of the CPU count inside a VM does
not imply anything about the number of CPUs available to the host,
i.e. stripping LOCK prefixes in that case would be unsafe.
Thank you, Juergen and Jan for your quick answers!
I didn't realize LOCK_PREFIX is "" for UP. :-)