Allow the system process and a process without a parent process to use
all cpus on a smp machine, even if only the boot cpu is running.
Modified: trunk/reactos/ntoskrnl/ps/process.c
Modified: trunk/reactos/ntoskrnl/ps/psmgr.c
_____
Modified: trunk/reactos/ntoskrnl/ps/process.c
--- trunk/reactos/ntoskrnl/ps/process.c 2005-09-24 19:30:12 UTC (rev
18034)
+++ trunk/reactos/ntoskrnl/ps/process.c 2005-09-24 19:34:54 UTC (rev
18035)
@@ -220,7 +220,14 @@
else
{
pParentProcess = NULL;
+#ifdef CONFIG_SMP
+ /* FIXME:
+ * Only the boot cpu is initialized in the early boot phase.
+ */
+ Affinity = 0xffffffff;
+#else
Affinity = KeActiveProcessors;
+#endif
}
/* Add the debug port */
_____
Modified: trunk/reactos/ntoskrnl/ps/psmgr.c
--- trunk/reactos/ntoskrnl/ps/psmgr.c 2005-09-24 19:30:12 UTC (rev
18034)
+++ trunk/reactos/ntoskrnl/ps/psmgr.c 2005-09-24 19:34:54 UTC (rev
18035)
@@ -220,7 +220,15 @@
/* System threads may run on any processor. */
RtlZeroMemory(PsInitialSystemProcess, sizeof(EPROCESS));
+#ifdef CONFIG_SMP
+ /* FIXME:
+ * Only the boot cpu is initialized. Threads of the
+ * system process should be able to run on all cpus.
+ */
+ PsInitialSystemProcess->Pcb.Affinity = 0xffffffff;
+#else
PsInitialSystemProcess->Pcb.Affinity = KeActiveProcessors;
+#endif
PsInitialSystemProcess->Pcb.IopmOffset = 0xffff;
PsInitialSystemProcess->Pcb.BasePriority = PROCESS_PRIORITY_NORMAL;
PsInitialSystemProcess->Pcb.QuantumReset = 6;
Show replies by date