All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ralf Baechle <ralf@oss.sgi.com>
To: Atsushi Nemoto <nemoto@toshiba-tops.co.jp>
Cc: dony.he@huawei.com, linux-mips@oss.sgi.com
Subject: Re: vmalloc bugs in 2.4.5???
Date: Wed, 26 Dec 2001 01:32:21 -0200	[thread overview]
Message-ID: <20011226013221.A737@dea.linux-mips.net> (raw)
In-Reply-To: <20011107.103947.74756322.nemoto@toshiba-tops.co.jp>; from nemoto@toshiba-tops.co.jp on Wed, Nov 07, 2001 at 10:39:47AM +0900

On Wed, Nov 07, 2001 at 10:39:47AM +0900, Atsushi Nemoto wrote:

Time to revisit a pile of old problems in my mailfolder ...

> >>>>> On Tue, 6 Nov 2001 13:08:39 -0800, Ralf Baechle <ralf@oss.sgi.com> said:
> ralf> Vmalloc is probably innocent I'd rather guess cache flushing is
> ralf> broken on your platform.
> 
> In 2.4.5, flush_cache_all() (and flush_tlb_all()) is called in
> vmalloc_area_pages().  I think this call protect us from virtual
> aliasing problem.
> 
> By the way, does anybody have any problem with vmalloc on recent
> kernel?
> 
> In somewhere between 2.4.6 and 2.4.9, the call to flush_cache_all()
> disappered from vmalloc_area_pages().  I have a data corruption
> problem in vmalloc()ed area without this call.  I think we still need
> this call.
> 
> --- linux-sgi-cvs/mm/vmalloc.c	Tue Sep 18 05:16:31 2001
> +++ linux.new/mm/vmalloc.c	Wed Nov  7 10:33:47 2001
> @@ -144,6 +144,7 @@
>  	int ret;
>  
>  	dir = pgd_offset_k(address);
> +	flush_cache_all();
>  	spin_lock(&init_mm.page_table_lock);
>  	do {
>  		pmd_t *pmd;
> @@ -163,6 +164,7 @@
>  		ret = 0;
>  	} while (address && (address < end));
>  	spin_unlock(&init_mm.page_table_lock);
> + 	flush_tlb_all();
>  	return ret;
>  }

Have you ever resolved this problem?  I've just doublechecked the
vmalloc code and it seems as if it should be entirely safe without these
two calls.  The tlb is flushed on vfree so no stale entries for a
vmalloc address can ever be in the tlb at vmalloc time, so this
flush_tlb_all() is just an expensive nop.  And the same it true for
flush_cache_all() no matter if caches are physically or virtually
indexed.

  Ralf

  parent reply	other threads:[~2001-12-26 21:42 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-05  7:34 vmalloc bugs in 2.4.5??? machael
2001-11-05  7:34 ` machael
2001-11-06 21:08 ` Ralf Baechle
2001-11-07  0:47   ` machael
2001-11-07  0:47     ` machael
2001-11-07  1:39   ` Atsushi Nemoto
2001-11-07  2:09     ` machael
2001-11-07  2:09       ` machael
2001-11-07 10:41     ` Ralf Baechle
2001-11-07 11:29       ` machael
2001-11-07 11:29         ` machael
2001-11-08 15:16       ` Maciej W. Rozycki
2001-12-26  3:32     ` Ralf Baechle [this message]
2001-12-27  1:55       ` Atsushi Nemoto
2001-12-27  3:12         ` Ralf Baechle
2001-12-27  3:51           ` Atsushi Nemoto
2001-12-27  4:29             ` Ralf Baechle
2001-12-27 16:01               ` Tommy S. Christensen
2001-12-27 21:19                 ` Ralf Baechle
2001-12-28  0:48                   ` machael thailer
2001-12-28  0:48                     ` machael thailer

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=20011226013221.A737@dea.linux-mips.net \
    --to=ralf@oss.sgi.com \
    --cc=dony.he@huawei.com \
    --cc=linux-mips@oss.sgi.com \
    --cc=nemoto@toshiba-tops.co.jp \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.