RE: scheduler syscall requirements

"Volkmar Uhlig" <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
You must have misinterpreted the code.  The test is whether the current
thread is in the same address space as the scheduler.  Thus all threads in
the address space of the scheduler can execute the syscall.

- Volkmar
 

________________________________

	From: Al
	Sent: Thursday, August 10, 2006 3:34 AM
	To: [email protected]
	Subject: scheduler syscall requirements
	
	
	Hi.
	
	I am interested in scheduling for L4 so I had a look
	at the source of Scheduler syscall in Pistachio and wondered
	how the scheduler and its scheduled thread
	necessarily should be in the same address space. 
	
	pistachio/kernel/src/api/v4/schedule.cc
	
	609     // are we in the same address space as the scheduler of the
thread?
	610     tcb_t * sched_tcb =
get_current_space()->get_tcb(dest_tcb->get_scheduler());
	611     if (sched_tcb->get_global_id() != dest_tcb->get_scheduler()
|| 
	612          sched_tcb->get_space() != get_current_space())
	613     {
	614          get_current_tcb ()->set_error_code (ENO_PRIVILEGE);
	615          return_schedule(0, 0);
	616     }
	
	

	For me it restricts the opportunities for scheduling
	policy and the manageability for program systems on 
	top of L4.
	
	Also nothing is mentioned about these requirements
	in "L4 kernel reference manual".
	
	Is there any reasonable explanation for this?
	
	

	BTW, there is no checking that Scheduler syscall invoked
	by thread registered as scheduler for destination thread, and
	proposed priority less than current thread's. It seems easy to fix, 
	so maybe it provided deviation?

	Thanks.
	Al.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.