default CPU affinity problem

Started by ghormoon, August 05, 2010, 02:28:44 AM

Previous topic - Next topic

ghormoon

Hi, I've got problem with default affinities (I use process lasso just because of affinities)
I've got programs and their affinities set, those work fine, but when I start a process which doesnt have a rule, it works only on core 3 (I've got 0-3).
If i set rule *.* to 0,1,2,3 it replaces all other rules ... if I set it first and then other rules, it somehow works, but keeps changing all ruled processes to 0,1,2,3 and their rule
eg.
08-05-2010 08:13:22.901,GHORLAND-IC178C,Ghormoon,explorer.exe,3112,Process CPU affinity was adjusted to: 0;1;2;3,Process matches user default for: *.*
08-05-2010 08:13:22.901,GHORLAND-IC178C,Ghormoon,explorer.exe,3112,Process CPU affinity was adjusted to: 3,Process matches user default for: explorer.exe

any ideas how to fix default affinity for nonlisted instead of this? it changes affinity for all listed about twice a second ...

Thanks in advance, Ghor

Jeremy Collake

The *.* rule should be unnecessary, as the default CPU affinity will be 'all CPUs' (0,1,2,3 in your case). Since that rule matches all processes, it is being applied to all processes (even if they have another rule set). The behavior when there are multiple conflicting default CPU affinities is undefined. Once you remove the *.* rule, everything should work fine. I'm not sure what the reasoning was for having the *.* rule, but if you had a reason then describe it and there is probably another solution. I may have misunderstood, and if so please elaborate further.

Thanks
Software Engineer. Bitsum LLC.

ghormoon

As I wrote, without the rule, all processes, which doesn't have any rule have affinity 3 instead of 0;1;2;3 and I don't know why ...

Jeremy Collake

I'm sorry I misunderstood.

I think I may know the problem. The rule you have set on 'explorer.exe' is the problem. You see, it is explorer.exe that launches most new processes (all ones that user starts). The new processes were adopting the CPU affinity of its parent. This rule must be removed, then your system rebooted. All will be well from there, and you can remove the *.* rule. I will add a safety for conditions like this, to let users know of that explorer.exe's attributes may propagate. That is why ProBalance ignores this process ;o.
Software Engineer. Bitsum LLC.

ghormoon

It really was that :) I've set a rule for explorer because it's the thing that freezes most often in system, so just after installation I've created a rule and didn't realize that it caused this.
Thanks a lot ;)

BTW, I'm working on Czech translation, I'm not proffesional translator (maybe better to say I'm bad translator ;) ) but i'll do my best, so I can send it if you're interested

Jeremy Collake

It is an easy thing to miss. In fact, I missed it in early versions of Process Lasso. It wasn't until a beta tester report that I realized explorer.exe's process attributes (priority and CPU affinity) will propagate to its children, thus any new process gets the same priority and CPU affinity that explorer.exe had. This actually only applies to a particular instance of explorer.exe, since many instances may exist. It is the instance considered as the 'shell', normally the first instance of explorer.exe.

Therefore, in theory, perhaps I could allow a default CPU affinity to be set on explorer.exe, but it only apply to non-shell instances of explorer.exe. Hmm... ;).
Software Engineer. Bitsum LLC.

ghormoon

Well if you have time for that ;) I hope it will work without it ... it always worked before I've started using PL (well, I started on W XP, now I'm on W7 and the xeplorer things freeze much more often) ... to be honest, I'm using PL mainly because some old games lag and crash on more cores and I'm too lazy to change affinity on each start :)