On Mon, 2002-07-01 11:13:22 +0200, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote in message <20020701091321.GO17216@lug-owl.de>: > On Sun, 2002-06-30 19:47:17 +0200, Jan-Benedict Glaw <jbglaw@lug-owl.de> > wrote in message <20020630174717.GI17216@lug-owl.de>: > > On Sun, 2002-06-30 00:05:13 +0200, Jan-Benedict Glaw <jbglaw@lug-owl.de> > > wrote in message <20020629220513.GC17216@lug-owl.de>: > > [...] > > > 10: bc600060 0xbc600060 > > > Code; 88016ce0 <r4k_flush_cache_range_d32i32+e4/16c> > > > 14: bc600080 0xbc600080 > > > > Well, I've bulid the same kernel with CONFIG_MIPS_UNCACHED and the box > > is running^Wsnailing fine with it. I'm experiencing a little peformance > > drop (100 BogoMips -> 2.79 BogoMips), but it comes up in finite time:-) > > I've got some mail that support for my early R4600 (well, the bug fixes > for it...) got removed some time ago. I've looked at the diff of r1.3 > (2.4.16) and r1.3.2.3 (2.4.19-rc1) and it seems that mostly calls to > __save_and_cli() and __restore_flags() got removed. Reading <asm/war.h>, > it really seems that this is causing my problem. > > Ralf, would you accept a patch adding these lines again surrounded by > #ifdef CONFIG_CPU_R4X00 ... #endif /* CONFIG_CPU_R4X00 */? The current > state however isn't that fine: running uncached is no fun:-( Okay, stupid idea. All these flush functions seem to be never called in parallel or recursive, so if might be possible to have a global flags variable and instead of always calling __save..() and __restore..(), we bulid a pair of inline functions doing this. This wouldn't give any penalty for !CONFIG_CPU_R4X00 and doesn't obscure the code so much as all those #ifdef and #endif's would do... I'll test my suggestion as fast as I reach my Indy again (is powered down at home...). #ifdef CONFIG_CPU_R4X00 long buggy_r4600_flags; #endif /* CONFIG_CPU_R4X00 */ static inline void r4600_bug_start() { #ifdef CONFIG_CPU_R4x00 __save_and_cli(buggy_r4600_flags); #endif /* CONFIG_CPU_R4x00 */ return; } static inline void r4600_bug_finish() { #ifdef CONFIG_CPU_R4x00 __restore_flags(buggy_r4600_flags); #endif /* CONFIG_CPU_R4x00 */ return; } MfG, JBG -- Jan-Benedict Glaw . jbglaw@lug-owl.de . +49-172-7608481 -- New APT-Proxy written in shell script -- http://lug-owl.de/~jbglaw/software/ap2/
Attachment:
pgp00209.pgp
Description: PGP signature