What are your custom settings? (like Watchdog)

Started by Coldblackice, February 14, 2015, 07:14:30 PM

Previous topic - Next topic

Coldblackice

I'm curious what others' custom settings are, like custom Watchdog settings, for example. Seems like a great feature, I'd just like to hear some ideas on when/how it's used, which I think would be helpful for others to know about, as well.

Maybe something like "One rule I have is when ____.exe does X, I have Watchdog automatically run ______ and do _____."

thegreatsquare

#1
I don't use PL for game mode, I tweak until I can't no more and then that's game mode and it's always running under the High Performance profile in Windows.

You need to keep in mind that DX9/10/11 games have a dependent primary core 0 (..or 0,1).

Doing as much to keep unnecessary processes off that 1st core is a good chunk of the battle.

Some Do's and Don'ts

-Don't Touch the OS. One exception is the PresentationFontCache.exe. It can be disabled and is a delayed start process. I just kick its affinity to 4-7.
-Don't Touch the main part of the graphics driver, though if a separate .exe controls the interface changing the affinity shouldn't cause issue. I've changed the affinity on a different aspect of the Nvidia driver in the pic attached, I don't install the "Geforce Experience" control panel at all.
-Don't Touch game clients, though Steam's Webhelper can have its affinity changed without affecting games.
-Don't touch Anti-Virus.

The Do's look something like this. SynTP is the laptop touchpad, I keep it because it kills the touchpad with an external mouse that I always use. Can't uninstall it because then the touchpad works all the damn time. ...which is no good for gaming.

Coldblackice

Awesome tips, thanks.

So with this advice, are you meaning whether to exit a program or not? Or do you mean whether to let ProBalance touch it or not?

Do you let ProBalance/ProcessLasso run while you game, or do you shut PL down?

thegreatsquare

Quote from: Coldblackice on May 06, 2015, 01:57:37 AM
Awesome tips, thanks.

So with this advice, are you meaning whether to exit a program or not? Or do you mean whether to let ProBalance touch it or not?

Do you let ProBalance/ProcessLasso run while you game, or do you shut PL down?

I've been gaming on laptops since 2007 and the specs back then were terrible, so I've learned to tweak to a somewhat extreme degree.

I don't use probalance or game mode. Process Lasso is always running to keep affinity/priority settings engaged.

I've made probalance & game mode unnecessary because I've already trimmed most everything down to near the bare minimum and restricted the affinity and priorities of the rest where I can. When I got my new laptop in December, I was running over 90 processes out of the box. I now run ~55 processes & 650-700 threads at idle in W8.1 with PL and Avast Free Anti-Virus.

I use Blackviper.com to tweak what services run at startup and then I do a few that even Blackviper doesn't do because I know I can get away with them and then I also turn off some things I don't use through the device manager ...like bluetooth or my GPU's audio for external sources. [Pics Below]

My laptop is strictly for gaming and I'm not currently using an external monitor. I have no printer/fax, bluetooth devices or cameras and I don't use my built in camera/mic on my laptop.

I may increase the priority of a game if I need to, but as I just upgraded to a MSI GT72 [4710HQ/GTX 980m 8GB/16GB RAM] it isn't something I need to do right now. Also, some games don't like having their priority settings messed with, like Dragon Age: Inquisition

I don't want to tell others what to do and others can do these things at their own risk, but I do these things without ill effect because I'm familiar with my needs and what I do and don't need on my own PC.

BenYeeHua

Just wonder, did you tested on the DPC latency that, it will affect the game performance or not? :)
So far I know that DPC latency will only affect the sound(like cracking if too high), I think it don't affect too much for the CPU time to transfer data into Graphic card, which causing stutter.

Normally only laptop with the Wireless are causing high DPC latency, the second and third are 2 graphic card(Optimus/Enduro).

thegreatsquare

1: I've never experienced any audio issues.

2: I've done basic benchmark tests while I whittled down the processes and overall I am quicker than I was.

3: I've had no issues with stutter.

4: The MSI GT72 doesn't have switchable graphics as Optimus has been disabled in the model. My last laptop didn't have switchable graphics.

BenYeeHua

Quote2: I've done basic benchmark tests while I whittled down the processes and overall I am quicker than I was.
Hmm, I guess I may start taking useless processes while gaming now, like touchpad software. ;)

Coldblackice

Quote from: BenYeeHua on May 06, 2015, 11:06:54 AM
Just wonder, did you tested on the DPC latency that, it will affect the game performance or not? :)
So far I know that DPC latency will only affect the sound(like cracking if too high), I think it don't affect too much for the CPU time to transfer data into Graphic card, which causing stutter.

Normally only laptop with the Wireless are causing high DPC latency, the second and third are 2 graphic card(Optimus/Enduro).

Interesting. I always wondered if it was for more than just sound -- but I guess not!

BenYeeHua

Quote from: Coldblackice on May 07, 2015, 05:45:02 PM
Interesting. I always wondered if it was for more than just sound -- but I guess not!
Yup, I guess I will need to read the "Windows Internals" Books to know about it. ;D
https://technet.microsoft.com/en-us/sysinternals/bb963901.aspx

And Windows 8.1 version is coming out next years, I think he might just jump over to Windows 10? :P
http://www.amazon.com/dp/0735684189

edkiefer

Quote from: BenYeeHua on May 07, 2015, 06:30:53 PM
Yup, I guess I will need to read the "Windows Internals" Books to know about it. ;D
https://technet.microsoft.com/en-us/sysinternals/bb963901.aspx

And Windows 8.1 version is coming out next years, I think he might just jump over to Windows 10? :P
http://www.amazon.com/dp/0735684189
I never searched but that link and here has good vids on many of important sysinternal tools (autoruns, PE, PM etc ).
https://technet.microsoft.com/en-us/sysinternals/bb469930#videos
Bitsum QA Engineer

BenYeeHua

Quote from: edkiefer on May 08, 2015, 08:37:48 AM
I never searched but that link and here has good vids on many of important sysinternal tools (autoruns, PE, PM etc ).
https://technet.microsoft.com/en-us/sysinternals/bb469930#videos
Yup, and you may like to watch The Case of the Unexplained , and change your BSOD to RSOD(Red Screen of Death). ::)
https://technet.microsoft.com/en-us/sysinternals/bb963887.aspx

edkiefer

Quote from: BenYeeHua on May 08, 2015, 02:18:02 PM
Yup, and you may like to watch The Case of the Unexplained , and change your BSOD to RSOD(Red Screen of Death). ::)
https://technet.microsoft.com/en-us/sysinternals/bb963887.aspx
Yup, the vids are very good, even when you think you know something pretty good, can always learn more :)

All those vid's are a geek's paradise  ;D
Bitsum QA Engineer

BenYeeHua

Quote from: edkiefer on May 08, 2015, 02:35:50 PM
Yup, the vids are very good, even when you think you know something pretty good, can always learn more :)

All those vid's are a geek's paradise  ;D
But, but...
I am not a geek, just somehow I can understand what's he doing. ;D

Coldblackice

Quote from: thegreatsquare on May 05, 2015, 06:15:38 AM
You need to keep in mind that DX9/10/11 games have a dependent primary core 0 (..or 0,1).

So would it make a difference for me to set StarCraft 2's CPU affinity to the primary core? Or is it better to leave it alone?

I seem to remember reading somewhere that it's better to leave things like that alone, but we seem to be a higher-level group here, and maybe there's performance to be gained :)

edkiefer

You would leave the game or primary app your focused on and if there are any back-ground processes, those would be one to lower .
Overall Probalance should give good out of box results, you can set CPU affinity to reduce by one random core or do a single core to round-robin in options too .
Bitsum QA Engineer

thegreatsquare

Quote from: Coldblackice on May 09, 2015, 02:56:41 AM
So would it make a difference for me to set StarCraft 2's CPU affinity to the primary core? Or is it better to leave it alone?

I seem to remember reading somewhere that it's better to leave things like that alone, but we seem to be a higher-level group here, and maybe there's performance to be gained :)

You want your games to use all the cores you have. You could increase the priority, but if it starts crashing after then set it back.

As for doing what I'm doing and why, you have to understand a little about DX9-DX11 and this graph gives a good visual representation.

From: http://blogs.msdn.com/b/directx/archive/2014/03/20/directx-12.aspx


The CPU pictured above has four cores, for sake of argument it's your average Intel i5 Quad. Core "0" is the primary core. The top group of four represents the CPU's work running a game in DX11, the lower four is it in DX12.

Do you see how much extra work needs to be done by Core "0" in DX11? A lot of the CPU's "jobs" when running games can only be done by Core "0" in DX11 and prior versions.

This is why I restrict as many processes as I can other than games from running on Core "0", ..."0,1" for me since I have an i7.

The less unnecessary work I give Core "0", the more I free up Core "0" for gaming duties.

BenYeeHua

Err... It means Thread 0, and it can be running at any cores. ;)

Normally if the game will lock the main thread on the core 0, it means the game is design around the Windows XP age, which the Timing from the CPU(TSC) is difference and unstable when you are switching between the core.
(until Windows Vista start using HPET for QPC which is high latency for access, Windows 7 for HPET+TSC, and windows 8.1 has improved the access time by using TSC constant+HPET as the fallback)

And at that time, the Cache miss for switching between cores might be happen more often than the modern CPU now. :)

I can said just give a try to unlock the thread 0, I tried sometimes, but it don't affect the FPS, I guess the system interrupt of CPU usage on the core 0 is much less on my system.

thegreatsquare

No. Core 0 is a physical core and it is looked for by more programs than just Process Lasso and HWMonitor. PC games are usually dependent on Core 0 to some degree.

This is Black Flag [trying to run] on my old G73jh [i7 720QM 1.6-2.8GHz]



Skyrim:





BenYeeHua

Yes, game lock the main thread on Core 0, but the image for the DX11 and DX12 are saying it as Thread 0.
I don't think MS will make mistake and calling them as Thread 0, instead of Core 0...

Because I think the benchmark software are design without locking the thread 0 at Core 0, so they just tracking the thread, as it is useless to track the core, if you want to explain to user. :)
---
Anyways, I guess Ubisoft still having bad optimize for their game. ::)
---
Back to topic, the issues is, did the performance are difference if the main thread are jumping between core, or locked at the Core 0.
As I know, Core 0 always busy, because the Kernel also lock their Interrupt on the Core 0.
And we don't know that, if the game lock the thread manually to Core 0, will Kernel giving high priority for the thread locked on Core 0 than other thread or not.
---
So ya, anyone got some game that has benchmark included, and that game are also locked the main thread on Core 0?
I guess this is the most easier way to know did it will affected or not. ;)

Jeremy Collake

Quote from: thegreatsquare on May 10, 2015, 05:56:42 AM
No. Core 0 is a physical core and it is looked for by more programs than just Process Lasso and HWMonitor. PC games are usually dependent on Core 0 to some degree.
This is Black Flag [trying to run] on my old G73jh [i7 720QM 1.6-2.8GHz]

That is interesting. I would expect to see, after a few minutes at least, it swap the load to another physical core (e.g. core 2, then core 4...). The scheduler is designed to do this to prevent overheating any specific core, unless the game has specifically bound it's acting thread(s) to a specific CPU core.
Software Engineer. Bitsum LLC.

edkiefer

Quote from: Jeremy Collake on May 12, 2015, 02:28:32 PM
That is interesting. I would expect to see, after a few minutes at least, it swap the load to another physical core (e.g. core 2, then core 4...). The scheduler is designed to do this to prevent overheating any specific core, unless the game has specifically bound it's acting thread(s) to a specific CPU core.
Many older games (maybe even some new ones) have the GPU render off 1 core and spread the rest of load on rest of cores .
But that is changing , BFx is pretty even across all cores (at least on quad core , not sure if still on 6-8 core ) .
Bitsum QA Engineer

Jeremy Collake

Yes, that makes sense as they become more palatalized (use more threads to spread out the workload). It isn't always easy, or even possible. For instance, doing the computation 2+2=4 really can't be parallelized, since it's a sequential operation.

In most applications (or games), you will see one primary thread doing the heavy lifting, and several ancillary threads doing lighter work -- simply because so many operations can't be parallelized. If you see a game that never maxes out any core, then it is not CPU bound, meaning it's not taxing your CPU much at all (the CPU is not a bottleneck).

BUT this is different from the comment I made. I just meant that the Windows scheduler will eventually (unless told not to), swap the primary thread to another physical CPU to prevent overheating. It doesn't do this frequently, as this causes a slight performance hit due to cache loss. If it did such too frequently, it'd be called 'core thrashing'.
Software Engineer. Bitsum LLC.

edkiefer

Bitsum QA Engineer

BenYeeHua

QuoteBUT this is different from the comment I made. I just meant that the Windows scheduler will eventually (unless told not to), swap the primary thread to another physical CPU to prevent overheating. It doesn't do this frequently, as this causes a slight performance hit due to cache loss. If it did such too frequently, it'd be called 'core thrashing'.
Yup, normally when I run the Automatic Maintain manually, the process will bit only one core randomly, it is rarely to saw it bite one core 75%, then switch to another core 25%, except you are also running another process will will also using a lot of CPU. :)

Coldblackice

So with Starcraft 2 being a DirectX 9 game, what does that mean as far as its core-choosing (and/or core limitations)? Would it theoretically be beneficial then to force it onto core-0? Or would it be better to just let it choose what it wants (or what Windows wants)?

Quote from: BenYeeHua on May 13, 2015, 03:58:06 AM
Yup, normally when I run the Automatic Maintain manually, the process will bit only one core randomly, it is rarely to saw it bite one core 75%, then switch to another core 25%, except you are also running another process will will also using a lot of CPU. :)

What's "Automatic Maintain"? Where are you doing this?


Quote from: Jeremy Collake on May 12, 2015, 03:24:51 PM
Yes, that makes sense as they become more palatalized (use more threads to spread out the workload). It isn't always easy, or even possible. For instance, doing the computation 2+2=4 really can't be parallelized, since it's a sequential operation.

In most applications (or games), you will see one primary thread doing the heavy lifting, and several ancillary threads doing lighter work -- simply because so many operations can't be parallelized. If you see a game that never maxes out any core, then it is not CPU bound, meaning it's not taxing your CPU much at all (the CPU is not a bottleneck).

BUT this is different from the comment I made. I just meant that the Windows scheduler will eventually (unless told not to), swap the primary thread to another physical CPU to prevent overheating. It doesn't do this frequently, as this causes a slight performance hit due to cache loss. If it did such too frequently, it'd be called 'core thrashing'.

So on an i7 930 (x58) machine, if a program is showing a constant ~13% CPU usage in task-manager, does that mean the program is CPU-limited, because:

100% / 8 cores (logical) = ~13%

...?

And would this also mean that the program can only run off one logical core, since a program that could run off two cores should theoretically show a max of ~25%?

BenYeeHua

Quote from: Coldblackice on May 16, 2015, 02:48:57 AM
What's "Automatic Maintain"? Where are you doing this?
It is at Control Panel\All Control Panel Items\Action Center , it is to run tasks that scheduled to run when idle.

Quote
So on an i7 930 (x58) machine, if a program is showing a constant ~13% CPU usage in task-manager, does that mean the program is CPU-limited, because:

100% / 8 cores (logical) = ~13%

...?

And would this also mean that the program can only run off one logical core, since a program that could run off two cores should theoretically show a max of ~25%?
It depend, It is better that you just viewing the threads' CPU usage by using Process Explorer. ;)

Of cause for game, you can just see did GPU usage is 90-100% or not, if it is not, then you are CPU bound. :)

Jeremy Collake

I don't know what BenYeeHua means by automatic maintain, but the scheduler will eventually swap CPU bound threads to another core, that was my simple point. May take a few minutes. Unless it was told to keep that thread on a particular physical core.

The logic does not work in reverse ;). SO, *no*, if each core is showing 13% CPU load on an 8 logical core system, that does NOT mean they are maxed out. They are maxed out only when one core shows 100% for more than a second or so, and particularly when a 2 paired cores (2 adjacent logical cores) show 100% for a long period.
Software Engineer. Bitsum LLC.

edkiefer

I think Ben means automatic maintenance , things that OS does in back-ground, defrag , windows update , AV , any scheduled tasks etc .
Bitsum QA Engineer

BenYeeHua

Quote from: edkiefer on May 16, 2015, 09:49:03 AM
I think Ben means automatic maintenance , things that OS does in back-ground, defrag , windows update , AV , any scheduled tasks etc .
Yup, and one of the task(the process name is taskhost.exe) will bite one core, I think the kernel think it should not switch it to other core. :)
Of cause it got switch to the core 3, just too bad the hard disk is getting bite too, so I can't open the paint.net fast enough to save it.(and I forgot the shortcut to just save the picture directly) :P

And yup, this is what's it look like when the system process is having 25%, it got nearly equal on all core. ;)
It is still a question that what is that system process doing when it is running automatic maintenance, but normally if you don't run it for a very long time, then it will also process a lot more longer, like 2 hours.

PS:That taskhost.exe might be this bug, but I am not sure about this, I think "Users" don't count as the string "user", right? :D
https://support.microsoft.com/en-us/kb/3053711

thegreatsquare

#29
Quote from: Coldblackice on May 16, 2015, 02:48:57 AM
So with Starcraft 2 being a DirectX 9 game, what does that mean as far as its core-choosing (and/or core limitations)? Would it theoretically be beneficial then to force it onto core-0? Or would it be better to just let it choose what it wants (or what Windows wants)?

When I was looking around for the link to that Msoft blog in one of my other posts, I came across some gamers restricting cores from Core 0 entirely because Core 1 then becomes Core 0 as far as the game is concerned.

I was thinking, "Why didn't I think of that? It is much easier than stripping out services to make the OS lighter." But my first two laptops had dual cores, force of habit kept me doing that when I had quad cores later on.

So I tried it out on Shadow of Modor.  Running cores 2-7 was slightly slower than using the whole CPU with my optimizations. Modor is well optimized for multicore CPUs, but favors physical cores ...most games do.


If you have a quad core, I would consider try to running Starcraft with Core 0 disabled, running cores 1-3 [cores 2-7 if CPU if hyperthreaded]

http://www.bit-tech.net/hardware/cpus/2010/08/18/how-many-cpu-cores-does-starcraft-2-use/2


As a rule of thumb: DX9/10 games are generally older and are likely going to favor a single core even if it uses other cores, while it depends on the game with DX11.


The easy test [if you have a quad core] for a game is to bench it on the whole CPU and with the Core 0 disabled for the game. You still may do other OS tweaks and optimizations including those from PL to bleed every last drop of performance you can.

-If FPS is higher with the full CPU, use the full CPU for the game.

-If FPS is higher with Core 0 restricted for the game, it's more dependent on a single core.

Jeremy Collake

#30
When doing that, you *must* be careful to remember that not every logical core is a physical core. For all modern processors, it'd go like this:

0 - real CPU
1 - hyper-threaded/paired logical CPU
2 - real CPU
3 - hyper-threaded/paired logical CPU

The hyper-threaded cores will offer substantially less performance than the physical cores on Intel platforms. For AMD, it doesn't matter as much.
Software Engineer. Bitsum LLC.

BenYeeHua

And also remember to disable core-parking, which is not a good design for performance.(but good for battery, if you are using Windows 8+) ;)

DeadHead

From my (limited) tests, so far not a single game have shown any benefits when I mess around with limiting cores for it, or by making it run only on the physical cores (avoiding non-physical cores). The best peformance, again from *my* tests, has been to let the game use all cores available. Should there be a background process that takes up too much cpu, then it could possibly benefit the game by limiting that particular process, although I've found PL does a fine job when by lowering priority of that process.
This is not to say there could be examples where playing around with affinity could improve performance, but in general it's best to leave this to Windows, imho.
Windows 10 Pro 64 (swedish) || Xeon 5650 @ +4 GHz || 24 gig ram || R9280 Toxic

Jeremy Collake

Quote from: DeadHead on May 16, 2015, 05:01:49 PM
From my (limited) tests, so far not a single game have shown any benefits when I mess around with limiting cores for it, or by making it run only on the physical cores (avoiding non-physical cores). The best peformance, again from *my* tests, has been to let the game use all cores available. Should there be a background process that takes up too much cpu, then it could possibly benefit the game by limiting that particular process, although I've found PL does a fine job when by lowering priority of that process.
This is not to say there could be examples where playing around with affinity could improve performance, but in general it's best to leave this to Windows, imho.

I would agree with this advice. Also remember that games are often GPU bound, but for the games (or portions of games) that are CPU bound, limiting their CPU affinity limits their opportunity for Windows to choose the processor(s) that are most ready to execute their code.
Software Engineer. Bitsum LLC.