Bug 153541
Description
Dutch Guy
2016-08-22 16:52:04 UTC
Do the trees your running have this commit id,3d4b7ae96d81dc8ed4ecd556118b632c2707ff08 as this is the one your mentioning that is currently for the fix in Linus's tree. The fix is in the kernel, but disabled by the following commit due to lock issues: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=00c611def8748a0a1cf1d31842e49b42dfdb3de1 we've internally submitted lock issue fix approaches. And still waiting for the ACPICA upstream to determine. Thanks Lv Is there any way to track this proposal/commit to the kernel. Thanks Created attachment 229971 [details]
Namespace lock change proposal
They'll appear in the kernel soon, I think.
My proposal is attached.
My first revision was posted on another bugzilla entry before.
However I improved it several times.
We are using team efforts to make sure the coverage of the change is OK.
After that, it will be released.
Thanks
Lv
Send me a actual patch when you have one that works or attach it here and I can give you comments or something if you wish. (In reply to ingvarthorvald from comment #5) > Send me a actual patch when you have one that works or attach it here and I > can give you comments or something if you wish. Sounds good. I'll post fixes here. Thanks Lv Created attachment 230111 [details]
[PATCH] ACPICA: Namespace: Add acpi_ns_get_node_unlocked()
Created attachment 230121 [details]
[PATCH] ACPICA: Namespace: Fix dynamic table loading issues by tuning namespace/interpreter locks
Created attachment 230131 [details]
[PATCH] ACPICA: Dispatcher: Fix a mutex issue for method auto serialization
Created attachment 230141 [details]
[PATCH] ACPICA: Tables: Tune table mutex to be a leaf lock
The fixes are posted, also need to revert "00c611def8748a0a1cf1d31842e49b42dfdb3de1" So you need to: # git clone https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git # git checkout linux-next # git am <the posted patches> # git revert 00c611def8748a0a1cf1d31842e49b42dfdb3de1 Than try the patched kernel. Thanks Lv Sounds good, will try later today. Do you want some logs from the PC I am using to test (If so please specify which logs you would like to have) (In reply to Dutch Guy from comment #12) > Sounds good, will try later today. > Do you want some logs from the PC I am using to test > (If so please specify which logs you would like to have) Sure, for now, I only need the dmesg output before/after the actions mentioned in comment 11. Thanks (In reply to Lv Zheng from comment #13) > (In reply to Dutch Guy from comment #12) > > Sounds good, will try later today. > > Do you want some logs from the PC I am using to test > > (If so please specify which logs you would like to have) > > Sure, for now, I only need the dmesg output before/after the actions > mentioned in comment 11. May not be clear. Let me reword. Test A: I need you to upload the full dmesg output of the kernel boot log here before applying the patches and reverting the temporal fix. 1. build and boot your kernel 2. obtain the full dmesg output # dmesg > dmesg-before.txt 3. upload dmesg-before.txt here Test B: I also need you to upload the full dmesg output of the kernel boot log here after applying the patches and reverting the temporal fix. 1. apply the patches and revert the temporal fix with your kernel # git am <the posted patches> # git revert 00c611def8748a0a1cf1d31842e49b42dfdb3de1 2. build and boot the kernel 3. obtain the full dmesg output # dmesg > dmesg-after.txt 3. upload dmesg-after.txt here If you failed to apply the fixes in step B.1, you can use the linux-pm.git/linux-next branch: # git clone https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git # git checkout linux-next And re-do the test A and B on top of this kernel repository. Thanks in advance. Currently compiling the new kernel. I have not downloaded a lot of patches from kernel.org, but is the easiest way to download, copy link location (of attachment) and then wget that link? (it worked, however just checking if it is the easiest way :)) Will post back, when kernel is done and installed. Getting this error during kernel build: LD drivers/ata/built-in.o CC [M] net/802/p8022.o Makefile:968: recipe for target 'drivers' failed make[2]: *** [drivers] Error 2 make[2]: *** Waiting for unfinished jobs.... CC [M] net/802/psnap.o CC [M] fs/nfs/nfstrace.o I am using the: # git clone https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git 4.8.0-RC3 also has some errors, only these are connected to the patches: CC [M] sound/drivers/mts64.o CC drivers/acpi/acpica/tbdata.o CC fs/ecryptfs/super.o drivers/acpi/acpica/tbdata.c: In function ‘acpi_tb_load_table’: drivers/acpi/acpica/tbdata.c:821:3: error: implicit declaration of function ‘acpi_ev_update_gpes’ [-Werror=implicit-function-declaration] acpi_ev_update_gpes(owner_id); ^ cc1: some warnings being treated as errors scripts/Makefile.build:289: recipe for target 'drivers/acpi/acpica/tbdata.o' failed make[5]: *** [drivers/acpi/acpica/tbdata.o] Error 1 scripts/Makefile.build:440: recipe for target 'drivers/acpi/acpica' failed make[4]: *** [drivers/acpi/acpica] Error 2 scripts/Makefile.build:440: recipe for target 'drivers/acpi' failed make[3]: *** [drivers/acpi] Error 2 Makefile:968: recipe for target 'drivers' failed make[2]: *** [drivers] Error 2 make[2]: *** Waiting for unfinished jobs.... CC fs/ecryptfs/mmap.o CC [M] sound/drivers/portman2x4.o CC fs/ecryptfs/read_write.o It's my problem. I've fixed this and forgot to post it again here. You can add "#include "acevents.h" to tbdata.c to fix this build issue. Or let me post refreshed patches here. as patches are now merged by ACPICA upstream. So it might be better to test the upstreamed version. Thanks and best regards Lv I will do the test later this morning (on latest Linus RC kernel). What is the upstream git you are referencing to (is that the rafael/linux-pm.git)? Created attachment 231031 [details]
[PATCH 1/8] ACPICA: Interpreter: Fix MLC issues by switching to new term_list grammar for table loading
The upstreamed lock fixes are based on this.
Created attachment 231041 [details]
[PATCH 2/8] ACPICA: Namespace: Add acpi_ns_get_node_unlocked()
Created attachment 231051 [details]
[PATCH 3/8] ACPICA: Namespace: Fix dynamic table loading issues by tuning namespace/interpreter locks
Created attachment 231061 [details]
[PATCH 4/8] ACPICA: Dispatcher: Fix a mutex issue for method auto serialization
Created attachment 231071 [details]
[PATCH 5/8] ACPICA: Tables: Tune table mutex to be a leaf lock
Created attachment 231081 [details]
[PATCH 6/8] ACPI 2.0 / AML: Enable correct ACPI subsystem initialization order for new table loading mode
Created attachment 231091 [details]
[PATCH 7/8] ACPI 2.0 / AML: Improve module level execution by moving the If/Else/While execution to per-table basis
Created attachment 231101 [details]
[PATCH 8/8] ACPI 2.0 / AML: Fix module level execution by correctly parsing table as TermList
> I will do the test later this morning (on latest Linus RC kernel). > What is the upstream git you are referencing to (is that the > rafael/linux-pm.git)? I uploaded the upstreamed patches, they are upstreamed here: https://github.com/acpica/acpica In order to use them with Linux, we need to "linuxize" these patches from ACPICA upstream. So I posted the "linuxized" here and they all contain upstreamed URL and commit ID. Then the test step could be: Test A: the curret code I need you to upload the full dmesg output of the kernel boot log here before applying the patches and reverting the temporal fix. 1. build and boot your kernel 2. obtain the full dmesg output # dmesg > dmesg-before.txt 3. upload dmesg-before.txt here Test B: confirm "acpi_gbl_group_module_level_code = false" I need you to upload the full dmesg output of the kernel boot log here for "acpi_gbl_group_module_level_code = false" mode. 1. apply the 1st set of patches, "the 1st set of patches" here means: attachment 231031 [details] attachment 231041 [details] attachment 231051 [details] attachment 231061 [details] attachment 231071 [details] attachment 231091 [details] 2. build and boot the kernel 3. obtain the full dmesg output # dmesg > dmesg-after-mlc1.txt 3. upload dmesg-after-mlc1.txt here Test C: confirm "acpi_gbl_parse_table_as_term_list = true" I need you to upload the full dmesg output of the kernel boot log here for "acpi_gbl_parse_table_as_term_list = true" mode. 1. apply the 2nd set of patches on top of the 1st set of patches, "the 2nd set of patches" here means: attachment 231081 [details] attachment 231101 [details] 2. build and boot the kernel 3. obtain the full dmesg output # dmesg > dmesg-after-mlc2.txt 3. upload dmesg-after-mlc2.txt here If you failed to apply the fixes in step B.1/C.1, you can use the linux-pm.git/linux-next branch: # git clone https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git # git checkout linux-next And re-do the test A and B on top of this kernel repository. Thanks in advance. Okey, just compiled the version with the earlier 4 patches. But to do it correct/complete I will just start with your previous message. Will report back when I have all 3 dmesg outputs. I noticed that the patches(8) need the "revert" patch to be in place, if I revert it, it will give a patch error. So for the test B & C this patch is still in place and not removed. Do I still need to remove this patch, because it is not yet so clear anymore? # git revert 00c611def8748a0a1cf1d31842e49b42dfdb3de1 At the moment I am building 3 kernels: kernel 4.8.0 RC4 with reverted 00c611def8748a0a1cf1d31842e49b42dfdb3de1 kernel 4.8.0 RC4 without reverted 00c611def8748a0a1cf1d31842e49b42dfdb3de1 & 5 patches kernel 4.8.0 RC4 without reverted 00c611def8748a0a1cf1d31842e49b42dfdb3de1 & 8 patches Please advice if this is not quite what you mentioned? Created attachment 231231 [details]
DMESG -> kernel 4.8.0-RC4-NoPatch
Created attachment 231241 [details]
DMESG -> kernel 4.8.0-RC4-RevertedCommit
Created attachment 231251 [details]
DMESG -> kernel 4.8.0-RC4-PatchAfterMlc1
Created attachment 231261 [details]
DMESG -> kernel 4.8.0-RC4-PatchAfterMlc2
This is DMESG from a fresh git clone, without ANY adjustments: https://bugzilla.kernel.org/attachment.cgi?id=231231 This is DMESG from a fresh git clone, with commit reverted: https://bugzilla.kernel.org/attachment.cgi?id=231241 This is DMESG from a fresh git clone, with 6 patches and NO commit reverted (so this is still in there!): https://bugzilla.kernel.org/attachment.cgi?id=231251 This is DMESG from a fresh git clone, with 8 patches and NO commit reverted (so this is still in there!): https://bugzilla.kernel.org/attachment.cgi?id=231261 Please tell me if you need more. Kind regards. (In reply to Dutch Guy from comment #34) > This is DMESG from a fresh git clone, without ANY adjustments: > https://bugzilla.kernel.org/attachment.cgi?id=231231 > > This is DMESG from a fresh git clone, with commit reverted: > https://bugzilla.kernel.org/attachment.cgi?id=231241 > > This is DMESG from a fresh git clone, with 6 patches and NO commit reverted > (so this is still in there!): > https://bugzilla.kernel.org/attachment.cgi?id=231251 > > This is DMESG from a fresh git clone, with 8 patches and NO commit reverted > (so this is still in there!): > https://bugzilla.kernel.org/attachment.cgi?id=231261 > > Please tell me if you need more. > Kind regards. The error: [ 0.018143] ACPI Error: [\_SB_.PCI0.XHC_.RHUB.HS11] Namespace lookup failure, AE_NOT_FOUND (20160422/dswload-210) [ 0.018149] ACPI Exception: AE_NOT_FOUND, During name lookup/catalog (20160422/psobject-227) [ 0.018182] ACPI Exception: AE_NOT_FOUND, (SSDT:xh_rvp08) while loading table (20160422/tbxfload-227) [ 0.023682] ACPI Error: 1 table load failures, 8 successful (20160422/tbxfload-247) Seems to have gone in Test B and C. Problem fixed, I'll mark the bug resolved. Thanks (In reply to Dutch Guy from comment #29) > Okey, just compiled the version with the earlier 4 patches. But to do it > correct/complete I will just start with your previous message. > Will report back when I have all 3 dmesg outputs. > > I noticed that the patches(8) need the "revert" patch to be in place, if I > revert it, it will give a patch error. So for the test B & C this patch is > still in place and not removed. Do I still need to remove this patch, > because it is not yet so clear anymore? > # git revert 00c611def8748a0a1cf1d31842e49b42dfdb3de1 > I posted the reversion commit here: attachment 231081 [details]. So if you followed comment 28 and applied this patch for test B/C, you don't have revert the "00c611def8748a0a1cf1d31842e49b42dfdb3de1". > At the moment I am building 3 kernels: > kernel 4.8.0 RC4 with reverted 00c611def8748a0a1cf1d31842e49b42dfdb3de1 > kernel 4.8.0 RC4 without reverted 00c611def8748a0a1cf1d31842e49b42dfdb3de1 & > 5 patches (not 6 patches?) > kernel 4.8.0 RC4 without reverted 00c611def8748a0a1cf1d31842e49b42dfdb3de1 & > 8 patches > Could be sufficient. > Please advice if this is not quite what you mentioned? Thanks (In reply to Dutch Guy from comment #34) > This is DMESG from a fresh git clone, without ANY adjustments: > https://bugzilla.kernel.org/attachment.cgi?id=231231 I can see the error: [ 0.018143] ACPI Error: [\_SB_.PCI0.XHC_.RHUB.HS11] Namespace lookup failure, AE_NOT_FOUND (20160422/dswload-210) [ 0.018149] ACPI Exception: AE_NOT_FOUND, During name lookup/catalog (20160422/psobject-227) [ 0.018182] ACPI Exception: AE_NOT_FOUND, (SSDT:xh_rvp08) while loading table (20160422/tbxfload-227) [ 0.023682] ACPI Error: 1 table load failures, 8 successful (20160422/tbxfload-247) > > This is DMESG from a fresh git clone, with commit reverted: > https://bugzilla.kernel.org/attachment.cgi?id=231241 I cannot see the error. So it is fixed. However the fix is not safe. > > This is DMESG from a fresh git clone, with 6 patches and NO commit reverted > (so this is still in there!): > https://bugzilla.kernel.org/attachment.cgi?id=231251 I cannot see the error. So it is fixed. The test repo contains lock fixes, safer now. However, acpi_gbl_group_module_level_code = false is not the right fix. > > This is DMESG from a fresh git clone, with 8 patches and NO commit reverted > (so this is still in there!): > https://bugzilla.kernel.org/attachment.cgi?id=231261 I cannot see the error. So it is fixed. The test repo contains lock fixes, safer now. acpi_gbl_parse_table_as_term_list = true is the right fix. > > Please tell me if you need more. No further tests are needed. Thanks for the help. Best regards (In reply to Lv Zheng from comment #36) > > At the moment I am building 3 kernels: > > kernel 4.8.0 RC4 with reverted 00c611def8748a0a1cf1d31842e49b42dfdb3de1 > > kernel 4.8.0 RC4 without reverted 00c611def8748a0a1cf1d31842e49b42dfdb3de1 > & > > 5 patches > > (not 6 patches?) Correct, I meant 6 Thanks and I will wait for the inclusion of the fix in Linus his kernel (hopefully before 4.8 release) We changed strategy to track all ACPICA bugs on ACPICA bugzilla. Please monitor this URL: https://bugs.acpica.org/show_bug.cgi?id=963 I'll close this bug. |