Ang isang pag-aayos ay papunta na sa pangunahing linya ng Linux 6.4 kernel at minarkahan din para sa back-porting sa umiiral na stable kernel series upang ayusin ang x86 topology reporting para sa Intel Hybrid system. Ang topology bug sa loob ng kernel ay nagiging mas malinaw para sa Meteor Lake na mga laptop kung saan ang kasalukuyang mga panloob na Intel test laptop ay maaaring mag-ulat ng mga system na mayroong 11 CPU socket kaysa sa tamang bilang ng mga core na nasa loob ng isang CPU socket.
Bagama’t karaniwan na ang mga disenyo ng Intel hybrid na CPU mula noong huling bahagi ng 2021, ang Linux kernel hanggang sa puntong ito ay hindi maayos na pinangangasiwaan ang variable na”smp_num_siblings”na siya namang pinapalaganap sa user-space at maaaring mauwi sa pag-uulat ng maling impormasyon. Sa kaso ng paparating na platform ng Intel Meteor Lake P, ang Linux kernel hanggang sa puntong ito na may karaniwang lscpu command ay mag-uulat na mayroong 11 CPU socket sa system bawat isa ay may iisang core. Sa katotohanan ito ay isang solong socket laptop na mayroong 16 kabuuang mga core.
Bukod sa maling impormasyon na pinapalaganap sa user-space para sa mga layuning pang-impormasyon, ang hindi wastong paghawak ng smp_num_siblings na ito ay maaaring magdulot ng epekto sa mga desisyon ng Linux kernel scheduler. Tulad ng komento ng inhinyero ng Intel na si Zhang Rui,”Inaasahan din na gagawin din ng scheduler ang mga hindi magandang bagay.”
Nagpaliwanag pa siya kasama nitong nakabinbing patch:
“Sa kaugalian , lahat ng CPU sa isang system ay may magkaparehong bilang ng mga kapatid na SMT. Nagbabago iyon sa mga hybrid na processor kung saan ang ilang lohikal na CPU ay may kapatid at ang iba ay wala.
Ngayon, itinatakda ng CPU boot code ang global variable na smp_num_siblings kapag dinadala ang bawat CPU thread pataas. Ang huling thread na i-boot ay i-overwrite ito ng bilang ng mga kapatid ng *na* thread. Ang huling thread na i-boot ay”manalo”. Kung ang thread ay isang Pcore, smp_num_siblings==2. Kung ito ay isang Ecore, smp_num_siblings==1.
Inilalarawan ng smp_num_siblings kung sinusuportahan ng *system* ang SMT. Dapat nitong tukuyin ang maximum na bilang ng mga SMT thread sa lahat ng core.
Tiyaking kinakatawan ng smp_num_siblings ang maximum na buong system bilang ng magkakapatid sa pamamagitan ng palaging pagtaas ng halaga nito. Huwag na huwag hayaang bumaba.
Sa MeteorLake-P platform, inaayos nito ang isang problema na ang mga Ecore CPU ay hindi na-update sa anumang cpu sibling map dahil ang system ay itinuturing bilang isang UP system kapag sinusuri ang mga Ecore CPU.”
Ang patch na iyon ay kinuha kahapon ng x86/urgent branch ng TIP. Sa turn, ito ay isusumite sa Linux 6.4 kernel na malamang sa katapusan ng linggo bilang isang agarang pag-aayos. Ang patch ay minarkahan din para sa back-porting sa umiiral na Linux kernel stable na bersyon upang matiyak na maayos na naiulat ang bilang ng mga kapatid sa SMP sa mga platform ng Intel hybrid.