NVidia Releases Linux Drivers Supporting 4K Stacks
Supermathie writes "NVidia has finally released drivers for their chipsets and the 2.6 kernel that support 4K stacks. That means compatability with Fedora Core 2 kernels, people! View the README, visit their driver page, or download the package."
This always pisses me off, it's like the geek equivalent of fucking women talking about how the new bloddy fall line just came out and now they have nothing to wear.
vampirical
~~~
Traditionally, the Linux kernel has used 8KB kernel stacks on most architectures. That stack must suffice for any sequence of calls that may result from a system call - plus the needs of any (hard or soft) interrupt handlers that may be invoked at the same time. In practice, stack overflows are pretty much unheard of in stable kernels; the kernel developers have long since learned to avoid large automatic variables, recursive functions, and other things which can use large amounts of stack space.
There have been patches circulating for some time now which reduce the kernel stack to 4KB. It is generally understood that the switch to smaller stacks will happen at some point; as a result, much work has recently gone into finding code paths in the kernel which are overly stack-hungry. Part of that effort is simply lots of testing; for that reason, recent -mm kernels no longer even offer an 8KB stack option. The hope is that, if enough people try out the smaller stacks and shake out the bugs, 4KB stacks can be merged into 2.6 in the near future.
The smaller stacks are scary to some people; it is hard to be certain that all of the possible paths through the kernel have actually been tested. 4KB stacks also break binary modules, and the nVidia drivers in particular. So there is a certain amount of pressure to defer this change into 2.7.
One might well wonder why the kernel hackers are trying to put this sort of change into a stable kernel series. The problem with 8KB stacks is that they require an "order 1" memory allocation: two pages which are contiguous in physical memory. Order 1 allocations can be very hard to satisfy once the system has been running for a while; physical memory can become so fragmented that two adjacent free pages simply do not exist. The kernel will try hard to free up pages to satisfy larger allocations; the result can be a slow, painful, thrashing system.
Each process on the system has its own kernel stack, which is used whenever the system goes into kernel mode while that process is running. Since each process requires a kernel stack, the creation of a new process requires an order 1 allocation. So the two-page kernel stacks can limit the creation of new processes, even though the system as a whole is not particularly short of resources. Shrinking kernel stacks to a single page eliminates this problem and makes it easy for Linux systems to handle far more processes at any given time.
Arjan van de Ven also made the interesting claim that the 4KB stacks are actually safer. His reasoning has to do with one other aspect of the 4KB stack patch: it moves interrupt handling onto a separate, dedicated stack. Software interrupts also get their own stack. Since interrupt handling has been moved away from the per-process kernel stack, the amount of space for system call handling remains about the same, and the stack space for interrupts has been increased.
The final decision on the integration of 4KB stacks has not yet been made; there are, seemingly, a few problems which still need to be tracked down. If things settle out, however, this fairly significant change could yet be merged into 2.6.
Complete CCTV
Gamblers Forum
So, what you're basically saying is you're a pragmatist, aka a sell-out. You are not an idealist. You spend your time playing games, not programming.
You would give up on Linux if you ever had to do some reverse-engineering and programming yourself to get something to work.
I'm going to be the first to break this to you - Linux is not for you. Keep it on your servers so you can have a free UNIX, but by no means use it as your desktop. Given you don't care in the slightest about having access to the source code of every single component on your system, and a guaranteed permission to modify and redistribute it as you see fit, then you really don't need Linux. Microsoft Windows or Mac OS X both subscribe to this "unchangeable, private" philosophy, and should fit your "rather have something closed that works" needs very well. Be honest, you're a PC gamer. You already have Windows. Why bother with Linux if you're just running closed source software on a closed-source tainted kernel?
Do you really think NVIDIA's staff are the only people in the world who do cutting edge graphics programming? Do you really think NVIDIA are the only people who could make the "special sauce"? Most of the advances in graphics technology have come from academia, where the "secrets" are published globally, they're not kept under lock and key.
Does my bum look big in this?