All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: Philippe Gerum <rpm@xenomai.org>,
	Henning Schild <henning.schild@siemens.com>,
	Xenomai@xenomai.org
Cc: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Subject: Re: [Xenomai] ipipe x86_64 huge page ioremap
Date: Fri, 15 Jan 2016 13:34:24 +0100	[thread overview]
Message-ID: <5698E750.6050508@siemens.com> (raw)
In-Reply-To: <5698AEA6.6030906@xenomai.org>

On 2016-01-15 09:32, Philippe Gerum wrote:
> On 01/14/2016 06:34 PM, Henning Schild wrote:
>> Hey,
>>
>> the 4.1 kernel supports mapping IO memory using huge pages.
>> 0f616be120c632c818faaea9adcb8f05a7a8601f ..
>> 6b6378355b925050eb6fa966742d8c2d65ff0d83
>>
>> In ipipe memory that gets ioremapped will get pinned using
>> __ipipe_pin_mapping_globally, however in the x86_64 case that function
>> uses vmalloc_sync_one which must only be used on 4k pages.
>>
>> We found the problem when using the kernel in a VBox VM, where the
>> paravirtualized PCI device has enough iomem to cause huge page
>> mappings. When loading the device driver you will get a BUG caused by
>> __ipipe_pin_mapping_globally.
>>
>> I will work on a fix for the problem. But i would also like to
>> understand the initial purpose of the pinning. Is it even supposed to
>> work for io memory as well? It looks like a way to commit address space
>> changes right down into the page tables, to avoid page-faults in the
>> kernel address space. Probably for more predictable timing ...
>>
> 
> This is for pinning the page table entries referencing kernel mappings,
> so that we don't get minor faults when treading over kernel memory,
> unless the fault fixup code is compatible with primary domain execution,
> and cheaper than tracking the pgds.

I suppose a critical scenario would already be a real-time driver that
accesses io regions in its interrupt handler or in the context of some
real-time task.

Jan

-- 
Siemens AG, Corporate Technology, CT RDA ITP SES-DE
Corporate Competence Center Embedded Linux


  reply	other threads:[~2016-01-15 12:34 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-14 17:34 [Xenomai] ipipe x86_64 huge page ioremap Henning Schild
2016-01-15  8:32 ` Philippe Gerum
2016-01-15 12:34   ` Jan Kiszka [this message]
2016-02-02 17:43   ` Henning Schild
2016-02-03 15:07     ` Philippe Gerum
2016-02-03 15:48       ` Philippe Gerum
2016-02-04 11:43       ` Henning Schild
2016-01-26 15:20 ` [Xenomai] [PATCH] ipipe x86 mm: handle huge pages in memory pinning Henning Schild
2016-01-26 20:18   ` Jan Kiszka
2016-01-27  9:54     ` Henning Schild
2016-01-27 10:31       ` Jan Kiszka
2016-01-27 10:44         ` Philippe Gerum
2016-01-27 10:46           ` Philippe Gerum
2016-01-27 13:41   ` [Xenomai] [PATCH v2] " Henning Schild
2016-01-28 10:53     ` Philippe Gerum
2016-01-28 20:53       ` Henning Schild
2016-01-29 17:11         ` Philippe Gerum
2016-01-29 18:39           ` Gilles Chanteperdrix
2016-02-02 12:08             ` Henning Schild
2016-02-02 13:58               ` Philippe Gerum
2016-02-02 16:38                 ` Henning Schild
2016-02-02 16:39                   ` Jan Kiszka
2016-02-02 19:26                   ` Gilles Chanteperdrix
2016-02-03 11:35                     ` Henning Schild
2016-02-02 14:18               ` Philippe Gerum
2016-02-02 16:30                 ` Henning Schild
2016-02-02 11:41           ` Henning Schild
2016-02-03 12:59     ` [Xenomai] [PATCH v3] " Henning Schild
2016-02-03 14:24       ` Gilles Chanteperdrix
2016-02-03 14:31         ` Jan Kiszka
2016-02-03 14:38           ` Gilles Chanteperdrix
2016-02-03 14:51             ` Jan Kiszka
2016-02-03 15:02               ` Gilles Chanteperdrix
2016-02-03 15:14                 ` Jan Kiszka
2016-02-04 11:53         ` Henning Schild
2016-02-08  8:44       ` Henning Schild
2016-03-07  7:58         ` Henning Schild

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=5698E750.6050508@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=Xenomai@xenomai.org \
    --cc=gilles.chanteperdrix@xenomai.org \
    --cc=henning.schild@siemens.com \
    --cc=rpm@xenomai.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 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.