Date: Tue, 29 May 2012 10:53:50 -0400 From: vasanth rao naik sabavat <vasanth.raonaik@gmail.com> To: freebsd-hackers@freebsd.org Subject: SMP: protocol control block protection for a multithreaded process (ex: udp). Message-ID: <CAAuizBjhGUUH3D3XN1t7WMnOPTq0vZjnV1QXGrR99qBOD34rGQ@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAAuizBjhGUUH3D3XN1t7WMnOPTq0vZjnV1QXGrR99qBOD34rGQ>