tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: cache invalidation in modload



On Sun, Jan 04, 2009 at 09:19:10PM +0200, Antti Kantee wrote:
> On Sun Jan 04 2009 at 18:27:11 +0000, David Laight wrote:
> > On Thu, Jan 01, 2009 at 08:35:41PM +0200, Antti Kantee wrote:
> > > Hi,
> > > 
> > > Why is cache invalidation, i.e. kobj_machdep(), required after loading
> > > a module?  The module loading code doesn't appear to do anything
> > > magically mystically mythical which would require a flush.  The only
> > > reason I could even begin to imagine was to flush the instruction cache.
> > > But at least on x86 this is not required according to my interpretation
> > > of the Intel manuals.
> > 
> > The intent is probably to flush the data cache - so that when code is
> > read the newly loaded data is found.
> > I-cache loads probably don't snoop the D-cache.
> 
> That's exactly what is not needed according to how I read the Intel
> manuals.  See the beginning of section 10.6 ("Self-Modifying Code")
> of Volume 3A: System Programming Guide.

Well, maybe on that CPU family. Some others are different. For sure 
68060 and, I think, all of m68k.

        -is


Home | Main Index | Thread Index | Old Index