SMP: protocol control block protection for a multithreaded process
(ex: udp).
vasanth rao naik sabavat
vasanth.raonaik at gmail.com
Tue May 29 14:53:51 UTC 2012
Hi,
In case of a Multicore cpu system running a multithreaded process.
For protocol control blocks there is no protection provided in the FreeBSD
9. For example, udp_close() and udp_send() access the inp before taking the
lock. Couldn't this cause the inp inconsistency on a multithreaded process
running on multicore cpu system?
Say, If the two threads of a process are concurrently executing socket send
and socket close say on a udp connection (this can happen in case of poorly
written user code.).
udp_close() will access the inp on one cpu and udp_send() will access the
inp on another cpu. it is possible that udp_close() gets the locks first
and free's the inp before udp_send() has a chance to run?
Am I missing anything?
Thanks,
Vasanth
More information about the freebsd-hackers
mailing list