Date: Fri, 10 Dec 2004 23:10:00 -0800 From: Alfred Perlstein <alfred@freebsd.org> To: "Christian S.J. Peron" <csjp@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/netinet ip_fw2.c Message-ID: <20041211070959.GT20783@elvis.mu.org> In-Reply-To: <200412100217.iBA2HI2L008474@repoman.freebsd.org> References: <200412100217.iBA2HI2L008474@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
* Christian S.J. Peron <csjp@FreeBSD.org> [041209 18:17] wrote: > csjp 2004-12-10 02:17:18 UTC > > It should be noted that this locking mechanism does not guarantee > fairness between read and write locks, and that it will favor > firewall chain readers over writers. This seemed acceptable since > write operations to firewall chains protected by this lock tend to > be less frequent than reads. > > Reviewed by: andre, rwatson > Tested by: myself, seanc > Silence on: ipfw@ > MFC after: 1 month > > Revision Changes Path > 1.85 +69 -29 src/sys/netinet/ip_fw2.c The code I see doesn't appear to work right. Can you switch it using sx lock? see the sx_xlock(9) API. Specifically: static __inline void IPFW_RLOCK(struct ip_fw_chain *chain) { mtx_lock(&chain->mtx); chain->busy_count++; mtx_unlock(&chain->mtx); } What if there already is an WLOCK? It doesn't block the reader. -- - Alfred Perlstein - Research Engineering Development Inc. - email: bright@mu.org cell: 408-480-4684
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041211070959.GT20783>