svn commit: r235480 - in stable/9/sys: dev/usb geom
geom/mountver i386/conf kern sys
avg at FreeBSD.org
Wed May 16 08:26:24 UTC 2012
on 15/05/2012 23:38 Konstantin Belousov said the following:
> On Tue, May 15, 2012 at 11:08:37PM +0300, Andriy Gapon wrote:
>> on 15/05/2012 21:27 Konstantin Belousov said the following:
>>> Did you verified that there is a gap between td_lk_slocks and
>>> td_blocked an all tier-1 architectures large enough to adopt
>>> td_stopsched without changing the layout of struct thread after the new
>>> member ?
>> I haven't verified that. but I presumed that the gap was either 2 bytes
>> on 32-bit architectures or 6 bytes on 64-bit ones. What is the proper and
>> doable way of verifying this?
> I think that p sizeof(struct thread) from gdb on previous and current
> version of the kernel would be a good indicator. If sizes differ, it is
> To be completely sure, calculate offset of the next member in the
> structure: in gdb, p &(((struct thread *)0)->td_blocked) for previous and
> current kernels.
This sounds a bit laborious. It really did :-) Until I realized that tier-1
is just i386 and amd64.
So, I've just verified that neither the size nor the offset change on either
>>> If not, this breaks KBI.
>> I can just revert the commit to not risk an obscure breakage. What would
>> you suggest?
> Move the new member to the end of the struct thread, and do explicit
> zeroing on the thread allocation, if commit changed the layout.
As Attilio said, this wouldn't be much better than just reverting the change.
More information about the svn-src-stable-9