[newsham@aloha.net (Timothy Newsham) writes:]
>> Only if you're multiprocessor... the kernel printf is done in a tight loop.
>> More likely it ages something out of the TLB which is hosing you.
>I should point out that I have a bitmap display. Printf calls the
>cons putchar routine. The putchar routine stamps characters onto
>the bitmap, and if scrolling has to be done the whole bitmap gets
>moved up. I put a cli()/sti() around the putch to make sure that
>characters get written out without being disturbed.
Huh? We're talking kernel printf() here, right? How does he call a routine
in a server?
>I based my hat.c on the i386 port. I have the following:
> *pt &= ~PT_PG;
> if (pv->p_vas == curthread->t_proc->p_vas) {
> flush_atc();
> }
No, kern_deletetrans(), in mach/vm.c.
>Is there anything I need to do to map memory into the kernel when
>hat adds a translation? I figured that when the kernel was going
>to add translations it would use kern_addtrans() in vm.c. I noticed
>that the hat code supports the use of PROT_KERN (kernel access only)
>but the mach-independant code never uses it so I havent supported it.
Kernel mappings are handled distinct from user mappings. I'd be curious to
hear about your copyin/copyout implementation.
>I'll try this.
>> Feels like TLB to me (ATC, in Moto-ese, I think).
>fun. (I was hoping you'd say "Oh, its this simple thing over here that
>you overlooked" :)
Oh, it's that simple thing over here called "TLB". :-)
Andy
Received on Sat Dec 31 17:16:00 1994
This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:11 PDT