The P0300 code means that a cylinder(s) is misfiring or is randomly misfiring. Start by checking for intake leaks, intake gaskets are a common caused of multi-cylinder misfiring. If no leak is found the next step is to replace the spark plugs. If the problem persists more tests needs to be done to diagnose the problem, see "Possible Causes".
There are factory service bulletins for the following GMC models:
The control module monitors the crankshaft speed and has detected a misfire condition
Engine Light ON (or Service Engine Soon Warning Light)
Lack/loss of power
P0300 Gmc Description
When a misfire occurs, engine speed will fluctuate. If the engine speed fluctuates enough to cause the Crankshaft Position (CKP) sensor signal to vary, the Engine Control Module (ECM) can determine that a misfire is occurring.