tag:blogger.com,1999:blog-2963790426029213933.post2227418782417268978..comments2024-02-29T00:33:07.382-08:00Comments on Alfred Chen's Blog: BMQ v5.6-r1 releaseAlfred Chenhttp://www.blogger.com/profile/03164306846702841944noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-2963790426029213933.post-18759481107568595892020-04-08T06:12:21.319-07:002020-04-08T06:12:21.319-07:00Yes, the llc_mask idx is correct.Yes, the llc_mask idx is correct.Alfred Chenhttps://www.blogger.com/profile/03164306846702841944noreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-88356003438874895082020-04-07T23:27:23.081-07:002020-04-07T23:27:23.081-07:00Ok, gut :) Are llc_mask idx's correct in my pr...Ok, gut :) Are llc_mask idx's correct in my pre-previous post above? They are strangely the same for all CPUs...<br /><br />BR, EduardoAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-59025841216507503242020-04-07T20:12:50.584-07:002020-04-07T20:12:50.584-07:00Looks good, llc id in bmq.c is the first cpu index...Looks good, llc id in bmq.c is the first cpu index from cpu_coregroup_mask(), it is happened to be 4 in you system.Alfred Chenhttps://www.blogger.com/profile/03164306846702841944noreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-49203596755154712972020-04-07T09:47:01.204-07:002020-04-07T09:47:01.204-07:00In addition (I had to split posts, 4K chars max in...In addition (I had to split posts, 4K chars max in one post) LLC seems to be correct except the id. I assume 0/1 or 0/4 does not matter much.<br />My info below is based on cpu_llc_shared_map / per_cpu(cpu_llc_id, CPU), but for kernel 5.2:<br />possible/present/online CPUs: 32/16/16<br />CPU 0 llc 0<br />CPU 1 llc 0<br />CPU 2 llc 0<br />CPU 3 llc 0<br />CPU 4 llc 1<br />CPU 5 llc 1<br />CPU 6 llc 1<br />CPU 7 llc 1<br />CPU 8 llc 0<br />CPU 9 llc 0<br />CPU 10 llc 0<br />CPU 11 llc 0<br />CPU 12 llc 1<br />CPU 13 llc 1<br />CPU 14 llc 1<br />CPU 15 llc 1<br /><br />BR, EduardoAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-80668776054025754152020-04-07T09:45:13.119-07:002020-04-07T09:45:13.119-07:00Now it shows this:
$ dmesg | grep -i "bmq: cp...Now it shows this:<br />$ dmesg | grep -i "bmq: cpu"<br />[ 1.752190] bmq: cpu#00 affinity mask: 0x00000100 - smt<br />[ 1.752190] bmq: cpu#00 affinity mask: 0x00000e0e - coregroup<br />[ 1.752190] bmq: cpu#00 affinity mask: 0x0000f0f0 - core<br />[ 1.752190] bmq: cpu#00 llc_id = 0, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#01 affinity mask: 0x00000200 - smt<br />[ 1.752190] bmq: cpu#01 affinity mask: 0x00000d0d - coregroup<br />[ 1.752190] bmq: cpu#01 affinity mask: 0x0000f0f0 - core<br />[ 1.752190] bmq: cpu#01 llc_id = 0, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#02 affinity mask: 0x00000400 - smt<br />[ 1.752190] bmq: cpu#02 affinity mask: 0x00000b0b - coregroup<br />[ 1.752190] bmq: cpu#02 affinity mask: 0x0000f0f0 - core<br />[ 1.752190] bmq: cpu#02 llc_id = 0, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#03 affinity mask: 0x00000800 - smt<br />[ 1.752190] bmq: cpu#03 affinity mask: 0x00000707 - coregroup<br />[ 1.752190] bmq: cpu#03 affinity mask: 0x0000f0f0 - core<br />[ 1.752190] bmq: cpu#03 llc_id = 0, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#04 affinity mask: 0x00001000 - smt<br />[ 1.752190] bmq: cpu#04 affinity mask: 0x0000e0e0 - coregroup<br />[ 1.752190] bmq: cpu#04 affinity mask: 0x00000f0f - core<br />[ 1.752190] bmq: cpu#04 llc_id = 4, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#05 affinity mask: 0x00002000 - smt<br />[ 1.752190] bmq: cpu#05 affinity mask: 0x0000d0d0 - coregroup<br />[ 1.752190] bmq: cpu#05 affinity mask: 0x00000f0f - core<br />[ 1.752190] bmq: cpu#05 llc_id = 4, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#06 affinity mask: 0x00004000 - smt<br />[ 1.752190] bmq: cpu#06 affinity mask: 0x0000b0b0 - coregroup<br />[ 1.752190] bmq: cpu#06 affinity mask: 0x00000f0f - core<br />[ 1.752190] bmq: cpu#06 llc_id = 4, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#07 affinity mask: 0x00008000 - smt<br />[ 1.752190] bmq: cpu#07 affinity mask: 0x00007070 - coregroup<br />[ 1.752190] bmq: cpu#07 affinity mask: 0x00000f0f - core<br />[ 1.752190] bmq: cpu#07 llc_id = 4, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#08 affinity mask: 0x00000001 - smt<br />[ 1.752190] bmq: cpu#08 affinity mask: 0x00000e0e - coregroup<br />[ 1.752190] bmq: cpu#08 affinity mask: 0x0000f0f0 - core<br />[ 1.752190] bmq: cpu#08 llc_id = 0, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#09 affinity mask: 0x00000002 - smt<br />[ 1.752190] bmq: cpu#09 affinity mask: 0x00000d0d - coregroup<br />[ 1.752190] bmq: cpu#09 affinity mask: 0x0000f0f0 - core<br />[ 1.752190] bmq: cpu#09 llc_id = 0, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#10 affinity mask: 0x00000004 - smt<br />[ 1.752190] bmq: cpu#10 affinity mask: 0x00000b0b - coregroup<br />[ 1.752190] bmq: cpu#10 affinity mask: 0x0000f0f0 - core<br />[ 1.752190] bmq: cpu#10 llc_id = 0, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#11 affinity mask: 0x00000008 - smt<br />[ 1.752190] bmq: cpu#11 affinity mask: 0x00000707 - coregroup<br />[ 1.752190] bmq: cpu#11 affinity mask: 0x0000f0f0 - core<br />[ 1.752190] bmq: cpu#11 llc_id = 0, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#12 affinity mask: 0x00000010 - smt<br />[ 1.752190] bmq: cpu#12 affinity mask: 0x0000e0e0 - coregroup<br />[ 1.752190] bmq: cpu#12 affinity mask: 0x00000f0f - core<br />[ 1.752190] bmq: cpu#12 llc_id = 4, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#13 affinity mask: 0x00000020 - smt<br />[ 1.752190] bmq: cpu#13 affinity mask: 0x0000d0d0 - coregroup<br />[ 1.752190] bmq: cpu#13 affinity mask: 0x00000f0f - core<br />[ 1.752190] bmq: cpu#13 llc_id = 4, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#14 affinity mask: 0x00000040 - smt<br />[ 1.752190] bmq: cpu#14 affinity mask: 0x0000b0b0 - coregroup<br />[ 1.752190] bmq: cpu#14 affinity mask: 0x00000f0f - core<br />[ 1.752190] bmq: cpu#14 llc_id = 4, llc_mask idx = 1<br />[ 1.752190] bmq: cpu#15 affinity mask: 0x00000080 - smt<br />[ 1.752190] bmq: cpu#15 affinity mask: 0x00007070 - coregroup<br />[ 1.752190] bmq: cpu#15 affinity mask: 0x00000f0f - core<br />[ 1.752190] bmq: cpu#15 llc_id = 4, llc_mask idx = 1<br /><br />I have not checked the code, but llc_mask seems to be the same for all CPUs, is that correct?<br /><br />BR, EduardoAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-18246078259755960772020-04-07T07:36:21.369-07:002020-04-07T07:36:21.369-07:00@Edurado
Pls also checkout this quick fix at https...@Edurado<br />Pls also checkout this quick fix at https://gitlab.com/alfredchen/linux-bmq/-/commit/d394787c8c388b4136358b313568a9ac6d9849bb<br />This should fix the cpu topology setup in ryzen system, and this bug should be existed for some time. I still need to double check it for some rare cpu topology, may add anther commit to address this. But still, I want this quick fix be out for ryzen users.Alfred Chenhttps://www.blogger.com/profile/03164306846702841944noreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-65922008420347231782020-04-07T07:30:07.797-07:002020-04-07T07:30:07.797-07:00Thanks for reporting and @pf's quick fix patch...Thanks for reporting and @pf's quick fix patch. It's a cherry-pick mistake during sync-up.<br />I have pushed my fix commit at https://gitlab.com/alfredchen/linux-bmq/-/commit/70ef06c844ba112020e548691bffb2b8da70602b<br />Alfred Chenhttps://www.blogger.com/profile/03164306846702841944noreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-12265717705054832972020-04-07T07:12:58.629-07:002020-04-07T07:12:58.629-07:00@Eduardo
Thanks for reply and workaround. This can...@Eduardo<br />Thanks for reply and workaround. This can only happen when patchset is applied but not enabled.I have reenabled this patch and built without error. The latest release has some improvement for RT tasks which I would like to test.<br /><br /><br />@Oleksandr<br />Thanks for the fix, it works great.<br /><br /><br />@Alfred<br />Thank you for continuously improving BMQ.<br /><br />Thanks again :)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-57659313709383017902020-04-07T02:06:35.832-07:002020-04-07T02:06:35.832-07:00Please try this fix: https://gitlab.com/snippets/1...Please try this fix: https://gitlab.com/snippets/1963674Oleksandr Natalenkohttps://www.blogger.com/profile/12098091624630953604noreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-54260434455798102832020-04-07T01:27:39.225-07:002020-04-07T01:27:39.225-07:00I have compiled BMQ for 5.6 in Ubuntu 16.04.x as w...I have compiled BMQ for 5.6 in Ubuntu 16.04.x as well as for ArchLinux, no problems at all.<br />Maybe there's a bug, when BMQ patchset is applied but not enabled, I have not tried to compile like that.<br />If this is the issue, I would say it needs fixing, but there is a workaround - do not patch kernel with BMQ or if You use pf-kernel from gitlab along with other goodies, just revert specifically BMQ using Alfred's all-in-one patch :)<br /><br />BR, EduardoAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-69500412847085342412020-04-07T00:16:05.848-07:002020-04-07T00:16:05.848-07:00Running on Arch Linux x86_64, the kernel failed to...Running on Arch Linux x86_64, the kernel failed to build without BMQ since v5.6-r0(still patched but not enable). There's the compile error(gcc 9.3.0):<br /><br />[ 193s] kernel/sched/core.c: In function 'is_cpu_allowed':<br />[ 193s] kernel/sched/core.c:1467:6: error: implicit declaration of function 'is_per_cpu_kthread'; did you mean 'is_percpu_thread'? [-Werror=implicit-function-declaration]<br />[ 193s] 1467 | if (is_per_cpu_kthread(p))<br />[ 193s] | ^~~~~~~~~~~~~~~~~~<br />[ 193s] | is_percpu_threadAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-90214898864529239672020-04-06T09:35:19.896-07:002020-04-06T09:35:19.896-07:00Here it is:
[ 0.103057] bmq: BMQ CPU Scheduler ...Here it is:<br />[ 0.103057] bmq: BMQ CPU Scheduler 5.6-r1 by Alfred Chen.<br />[ 1.981194] bmq: cpu#0 affinity mask - smt 0x00000100<br />[ 1.981194] bmq: cpu#0 affinity mask - coregroup 0x00000e0e<br />[ 1.981194] bmq: cpu#0 affinity mask - core 0x0000f0f0<br />[ 1.981194] bmq: cpu#0 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#1 affinity mask - smt 0x00000200<br />[ 1.981194] bmq: cpu#1 affinity mask - coregroup 0x00000d0d<br />[ 1.981194] bmq: cpu#1 affinity mask - core 0x0000f0f0<br />[ 1.981194] bmq: cpu#1 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#2 affinity mask - smt 0x00000400<br />[ 1.981194] bmq: cpu#2 affinity mask - coregroup 0x00000b0b<br />[ 1.981194] bmq: cpu#2 affinity mask - core 0x0000f0f0<br />[ 1.981194] bmq: cpu#2 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#3 affinity mask - smt 0x00000800<br />[ 1.981194] bmq: cpu#3 affinity mask - coregroup 0x00000707<br />[ 1.981194] bmq: cpu#3 affinity mask - core 0x0000f0f0<br />[ 1.981194] bmq: cpu#3 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#4 affinity mask - smt 0x00001000<br />[ 1.981194] bmq: cpu#4 affinity mask - coregroup 0x0000e0e0<br />[ 1.981194] bmq: cpu#4 affinity mask - core 0x00000f0f<br />[ 1.981194] bmq: cpu#4 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#5 affinity mask - smt 0x00002000<br />[ 1.981194] bmq: cpu#5 affinity mask - coregroup 0x0000d0d0<br />[ 1.981194] bmq: cpu#5 affinity mask - core 0x00000f0f<br />[ 1.981194] bmq: cpu#5 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#6 affinity mask - smt 0x00004000<br />[ 1.981194] bmq: cpu#6 affinity mask - coregroup 0x0000b0b0<br />[ 1.981194] bmq: cpu#6 affinity mask - core 0x00000f0f<br />[ 1.981194] bmq: cpu#6 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#7 affinity mask - smt 0x00008000<br />[ 1.981194] bmq: cpu#7 affinity mask - coregroup 0x00007070<br />[ 1.981194] bmq: cpu#7 affinity mask - core 0x00000f0f<br />[ 1.981194] bmq: cpu#7 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#8 affinity mask - smt 0x00000001<br />[ 1.981194] bmq: cpu#8 affinity mask - coregroup 0x00000e0e<br />[ 1.981194] bmq: cpu#8 affinity mask - core 0x0000f0f0<br />[ 1.981194] bmq: cpu#8 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#9 affinity mask - smt 0x00000002<br />[ 1.981194] bmq: cpu#9 affinity mask - coregroup 0x00000d0d<br />[ 1.981194] bmq: cpu#9 affinity mask - core 0x0000f0f0<br />[ 1.981194] bmq: cpu#9 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#10 affinity mask - smt 0x00000004<br />[ 1.981194] bmq: cpu#10 affinity mask - coregroup 0x00000b0b<br />[ 1.981194] bmq: cpu#10 affinity mask - core 0x0000f0f0<br />[ 1.981194] bmq: cpu#10 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#11 affinity mask - smt 0x00000008<br />[ 1.981194] bmq: cpu#11 affinity mask - coregroup 0x00000707<br />[ 1.981194] bmq: cpu#11 affinity mask - core 0x0000f0f0<br />[ 1.981194] bmq: cpu#11 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#12 affinity mask - smt 0x00000010<br />[ 1.981194] bmq: cpu#12 affinity mask - coregroup 0x0000e0e0<br />[ 1.981194] bmq: cpu#12 affinity mask - core 0x00000f0f<br />[ 1.981194] bmq: cpu#12 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#13 affinity mask - smt 0x00000020<br />[ 1.981194] bmq: cpu#13 affinity mask - coregroup 0x0000d0d0<br />[ 1.981194] bmq: cpu#13 affinity mask - core 0x00000f0f<br />[ 1.981194] bmq: cpu#13 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#14 affinity mask - smt 0x00000040<br />[ 1.981194] bmq: cpu#14 affinity mask - coregroup 0x0000b0b0<br />[ 1.981194] bmq: cpu#14 affinity mask - core 0x00000f0f<br />[ 1.981194] bmq: cpu#14 llc_id = 0, llc_mask idx = 2<br />[ 1.981194] bmq: cpu#15 affinity mask - smt 0x00000080<br />[ 1.981194] bmq: cpu#15 affinity mask - coregroup 0x00007070<br />[ 1.981194] bmq: cpu#15 affinity mask - core 0x00000f0f<br />[ 1.981194] bmq: cpu#15 llc_id = 0, llc_mask idx = 2<br /><br />BR, EduardoAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-48866065000916201972020-04-06T07:36:39.952-07:002020-04-06T07:36:39.952-07:00@Eduardo
Yes, the llc_id(all zero) is not correct....@Eduardo<br />Yes, the llc_id(all zero) is not correct.<br />Would you pls post a full output of "dmesg | grep -i bmq", the one I have is from older BMQ release.Alfred Chenhttps://www.blogger.com/profile/03164306846702841944noreply@blogger.comtag:blogger.com,1999:blog-2963790426029213933.post-50993950789591989902020-04-06T05:36:59.467-07:002020-04-06T05:36:59.467-07:00Compiled on Ryzen@home, boots fine. Thanks!
BUT I...Compiled on Ryzen@home, boots fine. Thanks!<br /><br />BUT I have noticed the following:<br />bmq: cpu#0 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#1 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#2 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#3 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#4 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#5 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#6 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#7 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#8 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#9 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#10 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#11 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#12 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#13 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#14 llc_id = 0, llc_mask idx = 2<br />bmq: cpu#15 llc_id = 0, llc_mask idx = 2<br /><br />Than can not be true. I should have a map with cpu+llcid from times when I added llc support for MuQSS scheduler if You need to know which CPU is related to which LLC.<br /><br />BR, EduardoAnonymousnoreply@blogger.com