Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Oct 2011 17:28:25 +0800
From:      Adrian Chadd <adrian@freebsd.org>
To:        "Jayachandran C." <jchandra@freebsd.org>, Konstantin Belousov <kib@freebsd.org>
Cc:        Alexander Motin <mav@freebsd.org>, freebsd-mips@freebsd.org
Subject:   Re: svn commit: r225892 - head/sys/mips/mips
Message-ID:  <CAJ-VmomLbueaG3bmnT0WfeKaMSyXSNo80BWXqEe39z6x%2Bx8QoA@mail.gmail.com>
In-Reply-To: <CAJ-VmomqmKPRHBCbt46_xXD0VoU47Q-vYWbAqCFaM635ZnOHWA@mail.gmail.com>
References:  <201110010556.p915uQH6003016@svn.freebsd.org> <CA%2B7sy7BiRvTB79H9=y%2BS4jQ=%2BboW1bcDJn%2BBULMmJU9KLLVJ5A@mail.gmail.com> <CAJ-VmokAsDpjJLt%2BVJ2gDGX%2BiMAwZvL2TPaaAD_LRm-Yyquxig@mail.gmail.com> <CA%2B7sy7D6h5a08Q6yNfX6xSqwabDLzE5GLu5aV3fCMYQKn_4AoQ@mail.gmail.com> <CAJ-Vmon32cVEVvC=3WJVmDkCUdyLWyec3sqU-ifzspVSPxedfg@mail.gmail.com> <CAJ-Vmomsq5PQzbCBmWob5juB9EqdcEoYV%2B9vwYjnJQYTo_%2B4kw@mail.gmail.com> <CAJ-Vmon_a_zLZmEGqwFaYaobjYFE2i1u2Viq3QD5dw4wpNNURA@mail.gmail.com> <CA%2B7sy7DFCMxo-2bJwBJcSEJf7ewG7Y=XwdgKXkhpRyDXQpvsYA@mail.gmail.com> <CAJ-VmokPFqS2oNWZ_mFSxy=0MXfgqtOcBHSQe%2BdYXvsLHAyGjQ@mail.gmail.com> <CAJ-VmomqmKPRHBCbt46_xXD0VoU47Q-vYWbAqCFaM635ZnOHWA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmomLbueaG3bmnT0WfeKaMSyXSNo80BWXqEe39z6x%2Bx8QoA>