All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] ipipe x86_64 huge page ioremap
@ 2016-01-14 17:34 Henning Schild
  2016-01-15  8:32 ` Philippe Gerum
  2016-01-26 15:20 ` [Xenomai] [PATCH] ipipe x86 mm: handle huge pages in memory pinning Henning Schild
  0 siblings, 2 replies; 37+ messages in thread
From: Henning Schild @ 2016-01-14 17:34 UTC (permalink / raw)
  To: Xenomai; +Cc: Gilles Chanteperdrix

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 ...

regards,
Henning


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2016-03-07  7:58 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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.