On Wed, Aug 05, 2015 at 12:10:23PM +0100, Steven Hartland wrote: > >> Just in case you didn't notice kib committed a fix for i386 thread0 in > >> r286288 so this may not be needed at all any more which is good news :) > > If I understund kib fix (and you about ZFS stack requirements) you > > need check curthread->td_kstack_pages (for case old, unfixed kerenel, > > depended from KSTACK_PAGES in Thread0). > > > > I.e. for all cases: > > > > - unfixed kernel with KSTACK_PAGES < 4 > > - unfixed kernel with KSTACK_PAGES >= 4 > > - fixed kernel with KSTACK_PAGES < 4 > > - fixed kernel with KSTACK_PAGES >= 4 > > - compiling zfs.ko separately from kernel with different KSTACK_PAGES > > - using zfs.ko with old kernel > > > > checking curthread->td_kstack_pages is right way (or, may be > > curthread->td_kstack_pages*PAGE_SIZE -- I am not cleanly understund > > what need to check -- size in bytes or size in pages). > > Checking KSTACK_PAGES by ifdef can produce vrong result. > Its not clear to me if curthread will be thread0 however in unfixed
printf("zfs__init thread check: curthread %p thread0 %p\n", curthread, &thread0) ? > thread0 stack size would have been kstack_pages so at the time this was > still correct IMO. Not clear to me where is real limitaion -- in thread0 or in thread executed zfs__init. Just for me, what is correct? 1) limitation in thread0 (some code from ZFS executed later in thread0, not in current tread), not in zfs__init 2) limitation in zfs__init (or in some code executed later in current thread), currently zfs__init exeuted in thread0 > Just to be clear this is not checked by an ifdef, that's just OS guard > which is correct. > > Latest revision which now explicitly checks thread0 stack size is now > available: > https://reviews.freebsd.org/D3279 nice to me. _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"