It helps to attach the test code :) P. Prarit Bhargava wrote: > Colleagues, > > I've identified the following critical issue where the hotplug > subsystem can cause OOM-killer to run. IMO this is a critical issue > within hotplug -- in the case below, only the virtual console > subsystem is responsible. > > The virtual consoles that are being spawned are responsible for 2 > hotplug events for every console opened -- one on the opening of the > console, and one on the closing of the console. > > If you run the tty2_test which opens and closes ttys (attached to this > email) you'll see THOUSANDS of hotplug events. After running for 1 > minute on a 16p ia64 I had well over 4000 hotplug events. > > If we're unlucky enough to fall below the low-water memory point at > the same time tty2_test is spawning, the OOM-killer starts up. Memory > is taken up by the hotplug events ... and we're off into the weeds. > > The issue with the virtual console code is that it uses the > class_simple library. This is a problem as the library pre-defines a > global kset parent as class_obj (or at least AFAICT). This parent is > used by ALL subsystems using the class_simple, not just the virtual > console subsystem. > > This parent has a pointer to allow hotplug slot operations for all > it's children (including the virtual consoles). IMO zero-ing this > pointer out is not a valid option as this would break hotplug op's for > many other subystems. > > ** I did notice that the class struct has it's own hotplug value -- > can/should this be used to override the parent's hotplug operations? ** > > P. > > >