svn commit: r225892 - head/sys/mips/mips

Adrian Chadd adrian at freebsd.org
Sun Oct 2 09:28:27 UTC 2011


Hi,

It doesn't look like openbsd or netbsd have tried addressing this.

I took a shot at trying to port over the relevant bits.

Linux seems to store the "can reschedule" flag in a bit of memory,
rather than calling a function to check each time.
This means that I can't simply port r4k_wait() verbose; there's no
guarantee EPC would be pointing to inside r4k_wait if it had to call
sched_runnable().

Also, since we are calling 'wait' inside a critical section, any EPC
unwinding would have to also unwind the critical section (and maybe
reprogram the timer) before restarting things. But since that now
makes the "rollback" section even larger and unwieldy.

I really don't have the time or brain power at the moment to try and
port this solution over from Linux.

I would really appreciate it if someone would help out here.

Thanks,


Adrian


More information about the freebsd-mips mailing list