Date: Tue, 13 Nov 2007 14:13:36 -0800 From: "Kip Macy" <kip.macy@gmail.com> To: "Vivek Khera" <vivek@khera.org> Cc: FreeBSD Stable List <freebsd-stable@freebsd.org> Subject: Re: reboot after panic: vm_page_unwire: invalid wire count: 0 Message-ID: <b1fa29170711131413g70af61bch1fb29ea917068272@mail.gmail.com> In-Reply-To: <91893E44-B766-4B31-9DA7-62F5EC0CCD45@khera.org> References: <0ECA0F43-497A-4823-8731-D517889D5822@khera.org> <ad79ad6b0711131350u7c00fb0ek16a23f5dc12089cb@mail.gmail.com> <91893E44-B766-4B31-9DA7-62F5EC0CCD45@khera.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Unfortunately, ZERO_COPY_SOCKETs have long been a known source of problems. I think also, when a page is copied as part of COW the new page is unwired (see pmap_copy et al.), this could lead to socow_iodone unwiring after send a page that was not wired. An added issue is that parts of the VM assume that COW and wired are mutually exclusive which the socow code violates. At some point in the near future I may be adding support for doing zero copy send without COW for blocking sockets. The one down side of this approach is that if you have multiple threads in your process it widens the window during which they can stomp on data that you're sending. Nonetheless, this would be a bug in the application code. More complicated would be zero-copy non-COW send on non-blocking sockets as it would require an extension to kevent for completion notification. In the meantime, your best bet is to disable ZERO_COPY_SOCKETS. -Kip On Nov 13, 2007 1:59 PM, Vivek Khera <vivek@khera.org> wrote: > > On Nov 13, 2007, at 4:50 PM, Vlad GALU wrote: > > >> vmio = 1 > >> offset = Unhandled dwarf expression opcode 0x93 > >> (kgdb) > >> > > > > Do you happen to have ZERO_COPY_SOCKETS in your kernel config? > > > > > > Yes, I do. Are they known to be bad under certain loads or just in > general. I don't have this issue with any other web server running > the same kernel config but those are amd64 boxes mostly. > > > _______________________________________________ > freebsd-stable@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-stable > To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b1fa29170711131413g70af61bch1fb29ea917068272>