proc extension request: p_sched
Peter Kadau
peter.kadau at tuebingen.mpg.de
Sat Dec 27 16:39:47 PST 2003
Hi !
I will commit the pointer to sys/proc.h so your proc
size doesn't change.
That's a good starting point, yes, thanks. :-)
...You'll have to maintain the
rest of the stuff as a patch set for now... it looks
like the structural topology needs some work so I'd rather
not commit it all now. For example, it is more likely that
either p_sched would not be allocated and freed, or
there would be two pointers hanging off the proc...
one describing the scheduler and another describing
per-process extension info.
I'd rather think the userland scheduler would be fixed
at boot-time so why bother with a pointer in proc ?
Are you thinking of switching the scheduler in mid-air or
do I miss some other point entirely ?
I wasn't talking about userspace threading schedulers, e.g.
... I would prefer that no
dynamic allocations be necessary for the default
scheduler but I can see their use for module-loaded
schedulers... perhaps a union is a good compromise:
struct proc {
...
struct scheduler *p_scheduler; /* (static) describe scheduler */
union sched p_sched; /* per-process scheduler info */
}
Then union sched would be:
union sched {
void *s_ext;
struct fubar_sched *s_fubar;
struct {
... embedded elements ...
} bat_sched;
struct {
... embedded elements ...
} bar_sched;
}
That is, it could accomodate both built-in non-dynamic schedulers
and KLD schedulers, which would give us the flexibility of coming to
a final decision later on down the line without sacrificing flexibility
now.
Yes, but the opaque pointer gives us all the flexibility we need for now
and we don't have other examples (yet).
And what about proc0 and forking ? Since IMO the scheduler is fixed
at boot-time at least struct sched should be known at boot-time
to fill in proc0. Any hooks that could be used here ?
Cheers
Peter
--
<peter.kadau at xxxxxxxxxxxxxxxx>
Campus der Max-Planck-Institute Tübingen
Netzwerk- und Systemadministration
Tel: +49 7071 601 598
Fax: +49 7071 601 616
More information about the Submit
mailing list