ProBalance - CPU affinity isn't restored when restraint is over [FIXED]

Started by abe5, October 06, 2013, 03:13:32 AM

Previous topic - Next topic

abe5

Process Lasso v6.7.0.0 64-bit
Windows 8 Pro 64-bit
AMD Athlon II X2 250 (Dual core CPU)

In ProBalance Settings, I've selected the option of changing the CPU affinity of a restrained process. "Reduce CPU affinity by one randomly selected processor"
During restraint, the affinity is reduced, but later on, it isn't restored back to 2 CPUs. (Even when the previously-restrained process is brought to foreground)
Only its priority is restored. The same goes for all processes.

This bug has been bugging me. I hope it'll be fixed soon. Thank you.  :)

Jeremy Collake

Thank you for reporting this, and I apologize for the delay.

I am investigating this immediately and will report back.
Software Engineer. Bitsum LLC.

smartbit

I also always get this behavior.

I use the same option "Reduce CPU affinity by one randomly selected processor".
When restrain ends - priority restored, affinity remains limited

Jeremy Collake

I've applied a fix as of 6.7.0.11 beta, releasing shortly.
Software Engineer. Bitsum LLC.


smartbit

Hi,
I finally had time to do some verification on this, and it's not actually working:

Let say, I start a process with default settings (4-core CPU in example): occupy 0-3 cores , priority Normal
Then, while it get restrained, it gets: 1-3, Below Normal
Restrain ends: 1-3, Normal
Restrained again: 0-2, Below Normal
Restrain ends: 0-2, Normal
Restrained again: 0-1;3, Below Normal
Restrain ends: 0-1;3, Normal

So, a you can see:
1 - The affinity is not restored.
2 - Upon another restrain, the affinity is limited again by randomly reducing 1 (new) out of 4 cores
Which, I suppose, is also not correct, since instead of reusing the 3 cores (thus being already restrained by 1 out of 4), it has to transfer the process from one core to another, just to find itself with the same resources in the end.

(maybe here are the traces of the modifications done for the fix, as PL treats the unrestrained processes as ones having original, full affinity)

Edit: tested on Process Lasso v.6.7.0.14, engine: v.810600

Jeremy Collake

v6.7.0.15 beta should actually work. Sorry about the initial mis-fix!
Software Engineer. Bitsum LLC.

Jeremy Collake

I also do acknowledge the second part of this issue, where the affinity isn't selected from the existing affinity. I'll work on that, though tests so far confirm that the new beta is at least restoring the CPU affinity correctly.
Software Engineer. Bitsum LLC.

smartbit

Good to hear on the progress  ;)

Will test it again with the next release, once it is ready.

smartbit

Hi,
I tested it briefly with the beta build 21:
The affinity seems to be restored fine this time.

Though, I'll make do some more and deep testing once the fix will hit the stable update stream, and report back here.

smartbit

As I promised, I tested it for a while with the latest stable build 28:
- Seems to be good, the process affinity is restored properly!

So, I think there is another issue that can be marked as fixed/validated  :)

BenYeeHua

Good to hear about that, remember to report if you found any new bug. ;)

Jeremy Collake

Software Engineer. Bitsum LLC.