[prev in list] [next in list] [prev in thread] [next in thread] List: acpi4linux Subject: [ACPI] Re: Is this safe? From: James D Strandboge <jstrand1 () rochester ! rr ! com> Date: 2003-01-31 4:30:48 [Download RAW message or body] On Thu, 2003-01-30 at 17:03, Markus Wiesner wrote: > James D Strandboge schrieb: > > I applied Jan's patches-- I too thought they were reasonable. > > Everything that worked before works again here too. But, I tried my > > acpi_test.sh script again, and it died at iteration 16299. Still no joy > > on polling battery state. I am using acpi-20021212 since it is what I > > had lying around. Can you lock your machine still with my acpi_test.sh? > > Kernel 2.4.20, acpi-20030122, preempt-kernel and low-latency patch: > tried it twice, both times a lockup (after 15961 and 16293) as i already > expected. > Those patches are nice-- big improvement for me. > But this time the system did not "really" lockup, I suppose because of > one of the additional patches. I could use Ctrl-c to get my command > prompt back. "top" showed "100% system" load and grep was still running > and unkillable (not even with -9). Disregarding the high load the system > was still usable and i could do a normal reboot instead of using > SysRq-Key. That is interesting. I am not sure what it means-- I can't really figure out if it is BIOS/dsdt, kernel or both. Even with debugging enabled, I don't see any errors. I looked at the code and battery.c and utils.c, and it seems ok. I poked around a bit in _BST in my dsdt (the part that generates the state), and came across method SX30. It looks like this: Method (SX30, 1, NotSerialized) { Store (SXX2, Local0) Increment (Local0) If (LNot (LGreater (Local0, SizeOf (SXX0)))) { CreateByteField (SXX0, SXX2, SX20) Store (Arg0, SX20) Store (Local0, SXX2) } } I wonder what happens when Local0 is actually bigger than SXX0? From this, SXX2 and SX20 stay the same, but I don't know what the implications of that are since there are no code comments. Also, other methods call SX30 without problems (seemingly), and you have seen the lockup at earlier iterations when pulling the AC. I am starting to understand the language of the dsdt, but it is still hard to crack. Look at SX11-- what does it do? It calls SXX4, which calls SXX6, then SXX5 (which itself calls SXX6), and so on. I downloaded the acpi specification and started looking at it (over 500 pages). Maybe I will get to the bottom of it. Jamie -- Email: jstrand1@rochester.rr.com GPG/PGP ID: 26384A3A Fingerprint: D9FF DF4A 2D46 A353 A289 E8F5 AA75 DCBE 2638 4A3A ["dsdt-A04.dsl.gz" (dsdt-A04.dsl.gz)] F8>