

How do you control the oomkiller? Short answer - You don’t. That’s by design. You can google for the lkml discussions about it.
What you can do is set cgroups around vsc to limit its resource consumption to improve your odds of avoiding the oomkiller’s attention entirely. Google up the cgroups docs for details.
This kind of problem is going to require some deep debugging of the surface kernel drivers. This isn’t going to be a simple or quick fix. Somebody is going to need to do some extensive debugging and analysis to chase down an issue like this. A solution to this problem could take a few hours, or it could take a few months of meticulous trial and error to narrow down the problem space and gather enough data to enable somebody to zero in on the problem.
If you want to dive into tracking down the problem yourself, I suggest starting with the kernel’s own docs on the driver architecture and debugging tools, etc.