From: Steffen Persvold <sp@scali.no>
To: VDA <VDA@port.imtp.ilyichevsk.odessa.ua>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Duron kernel crash (i686 works)
Date: Wed, 12 Sep 2001 12:51:55 +0200 [thread overview]
Message-ID: <3B9F3E4B.AB5E1D12@scali.no> (raw)
In-Reply-To: <E15goos-0002le-00@the-village.bc.nu> <9184118686.20010912095919@port.imtp.ilyichevsk.odessa.ua>
VDA wrote:
>
> >> ...
> >> kernel_fpu_end();
> >> + from-=4096;
> >> + to-=4096;
> >> + if(memcmp(from,to,4096)!=0) {
> >> + printk("Athlon bug!"); //add printout of from,to,...?
> >> + memcpy(to,from,4096);
> >> + }
> >> }
>
> RJD> I then get 'Athlon bug!' Still oopses.
>
> Waah! That means movntq's moved data to some other place in memory!
> memcmp detected that and memcpy fixed, but that 'other place' was
> corrupted and that's the cause of oops.
Well, not necessarily. It might be that data just hasn't "arrived" yet because
of the movntq instruction.
One thing that also puzzels me is that my is the fast_copy_page() routine laid
out like this :
"2: movq (%0), %%mm0\n"
" movntq %%mm0, (%1)\n"
" movq 8(%0), %%mm1\n"
" movntq %%mm1, 8(%1)\n"
" movq 16(%0), %%mm2\n"
" movntq %%mm2, 16(%1)\n"
" movq 24(%0), %%mm3\n"
" movntq %%mm3, 24(%1)\n"
" movq 32(%0), %%mm4\n"
" movntq %%mm4, 32(%1)\n"
" movq 40(%0), %%mm5\n"
" movntq %%mm5, 40(%1)\n"
" movq 48(%0), %%mm6\n"
" movntq %%mm6, 48(%1)\n"
" movq 56(%0), %%mm7\n"
" movntq %%mm7, 56(%1)\n"
When it's more intuitively more effective to fill the registers with reads first
and then write it with "movntq" like this :
"2: movq (%0), %%mm0\n"
" movq 8(%0), %%mm1\n"
" movq 16(%0), %%mm2\n"
" movq 24(%0), %%mm3\n"
" movq 32(%0), %%mm4\n"
" movq 40(%0), %%mm5\n"
" movq 48(%0), %%mm6\n"
" movq 56(%0), %%mm7\n"
" movntq %%mm0, (%1)\n"
" movntq %%mm1, 8(%1)\n"
" movntq %%mm2, 16(%1)\n"
" movntq %%mm3, 24(%1)\n"
" movntq %%mm4, 32(%1)\n"
" movntq %%mm5, 40(%1)\n"
" movntq %%mm6, 48(%1)\n"
" movntq %%mm7, 56(%1)\n"
Regards,
--
Steffen Persvold | Scali Computer AS | Try out the world's best
mailto:sp@scali.no | http://www.scali.com | performing MPI implementation:
Tel: (+47) 2262 8950 | Olaf Helsets vei 6 | - ScaMPI 1.12.2 -
Fax: (+47) 2262 8951 | N0621 Oslo, NORWAY | >300MBytes/s and <4uS latency
next prev parent reply other threads:[~2001-09-12 10:57 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-09-11 1:11 Duron kernel crash (i686 works) Roberto Jung Drebes
2001-09-11 3:30 ` Roberto Jung Drebes
2001-09-11 14:47 ` Alan Cox
2001-09-12 6:59 ` VDA
2001-09-12 10:51 ` Steffen Persvold [this message]
2001-09-12 11:08 ` VDA
2001-09-12 11:23 ` Arjan van de Ven
2001-09-12 12:48 ` Alan Cox
2001-09-12 13:48 ` VDA
2001-09-12 18:09 ` Mike Fedyk
[not found] <154763769.20010911115644@port.imtp.ilyichevsk.odessa.ua>
2001-09-11 19:38 ` Roberto Jung Drebes
2001-09-12 6:56 ` Liakakis Kostas
2001-09-12 8:21 ` Morten Helgesen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3B9F3E4B.AB5E1D12@scali.no \
--to=sp@scali.no \
--cc=VDA@port.imtp.ilyichevsk.odessa.ua \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox