Re: sysfs regression: wrong link counts

From: Eric W. Biederman
Date: Wed Feb 01 2012 - 00:04:08 EST


Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes:

> On Tue, Jan 31, 2012 at 4:44 AM, Eric W. Biederman
> <ebiederm@xxxxxxxxxxxx> wrote:
>>
>> The sensors update with the fix is scheduled for about a week out, well
>> before 3.3 ships.
>
> That's almost certainly *not* going to help.
>
> Guys, people don't update their user space. Some people run modern
> kernels on the enterprise distros - and those can be *years* out of
> date.
>
> If people report problems, we revert things. It's that simple. It
> really doesn't matter if you call it a user space bug or not - if user
> space depends on what we used to do, then we continue to do it.

> We can *try* the kernel change, but I can already tell you that
> anybody who thinks that "sensors will be fixed by all users by the
> time the kernel comes out" is likely totally full of shit. Not to
> mention that it apparently *already* causes problems for people who
> want to test -next, and this breaks those peoples setup, and thus
> means that -next gets less testing.

By and large I am in agreement with you, and this patch was designed to
be very focused in case we ran into userspace that had problems to make
it easy to revert. The first question I asked when this was reported is
how badly do things break. So I could tell if things needed to be
fixed.

My current understanding is that it is exactly sensors that breaks.
One program that complains loudly and doesn't function.

To the best of my knowledge nothing else fails, or depends on sensors.

I would like to have the code in -next a little longer to see if
anything else breaks.

> Really. "It's a bug in user space" is *NOT* an excuse for breaking
> things. Never was. Never is. There are (other) excuses for breaking
> things, but "user space did something I didn't expect it to do, and I
> consider it a bug" is absolutely not one of them.

Part of the reason for the patch is it is a partial regression fix for
sysfs using more memory in 3.3 and 3.2 than in previous kernels.
struct sysfs_dirent is nowhere near as critical as struct page but the
same kind of small in structure size add up.

Thinking about it I should be able to whip up a tiny patch that adds
a Kconfig option. Support for programs that are don't interpret nlinks
correctly.

That should allow people who want the size reduction to have a smaller
sysfs and it should allow people who are conservative to guarantee that
the code works, and it should let me find out if anything else out there
actually cares.

Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/