* [Xenomai] Sharing memory between rt-posix and standard-posix apps
@ 2012-06-19 8:25 Wolfgang Grandegger
2012-06-19 8:33 ` Gilles Chanteperdrix
0 siblings, 1 reply; 10+ messages in thread
From: Wolfgang Grandegger @ 2012-06-19 8:25 UTC (permalink / raw)
To: Xenomai
Hello,
the shared memory support of Xenomai's POSIX skin currently only support
shared memory between rt processes. I mean, all apps must be linked
against Xenomai's POSIX library. Shared memory created by apps linked
against the standard POSIX library will not be found. Is/was there a
good reason for that limitation?
Wolfgang.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Xenomai] Sharing memory between rt-posix and standard-posix apps
2012-06-19 8:25 [Xenomai] Sharing memory between rt-posix and standard-posix apps Wolfgang Grandegger
@ 2012-06-19 8:33 ` Gilles Chanteperdrix
2012-06-19 8:49 ` Wolfgang Grandegger
0 siblings, 1 reply; 10+ messages in thread
From: Gilles Chanteperdrix @ 2012-06-19 8:33 UTC (permalink / raw)
To: Wolfgang Grandegger; +Cc: Xenomai
On 06/19/2012 10:25 AM, Wolfgang Grandegger wrote:
> Hello,
>
> the shared memory support of Xenomai's POSIX skin currently only support
> shared memory between rt processes.
These services are for sharing memory between user-space and
kernel-space. In order to share memory between user-space processes, you
can use plain linux shared memories.
--
Gilles.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Xenomai] Sharing memory between rt-posix and standard-posix apps
2012-06-19 8:33 ` Gilles Chanteperdrix
@ 2012-06-19 8:49 ` Wolfgang Grandegger
2012-06-19 8:50 ` Gilles Chanteperdrix
0 siblings, 1 reply; 10+ messages in thread
From: Wolfgang Grandegger @ 2012-06-19 8:49 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: Xenomai
On 06/19/2012 10:33 AM, Gilles Chanteperdrix wrote:
> On 06/19/2012 10:25 AM, Wolfgang Grandegger wrote:
>> Hello,
>>
>> the shared memory support of Xenomai's POSIX skin currently only support
>> shared memory between rt processes.
>
> These services are for sharing memory between user-space and
> kernel-space. In order to share memory between user-space processes, you
> can use plain linux shared memories.
But then I will get mode switches due to page faults, right?
Wolfgang.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Xenomai] Sharing memory between rt-posix and standard-posix apps
2012-06-19 8:49 ` Wolfgang Grandegger
@ 2012-06-19 8:50 ` Gilles Chanteperdrix
2012-06-19 8:52 ` Wolfgang Grandegger
0 siblings, 1 reply; 10+ messages in thread
From: Gilles Chanteperdrix @ 2012-06-19 8:50 UTC (permalink / raw)
To: Wolfgang Grandegger; +Cc: Xenomai
On 06/19/2012 10:49 AM, Wolfgang Grandegger wrote:
> On 06/19/2012 10:33 AM, Gilles Chanteperdrix wrote:
>> On 06/19/2012 10:25 AM, Wolfgang Grandegger wrote:
>>> Hello,
>>>
>>> the shared memory support of Xenomai's POSIX skin currently only support
>>> shared memory between rt processes.
>>
>> These services are for sharing memory between user-space and
>> kernel-space. In order to share memory between user-space processes, you
>> can use plain linux shared memories.
>
> But then I will get mode switches due to page faults, right?
No, there should not be any page fault.
--
Gilles.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Xenomai] Sharing memory between rt-posix and standard-posix apps
2012-06-19 8:50 ` Gilles Chanteperdrix
@ 2012-06-19 8:52 ` Wolfgang Grandegger
2012-06-19 9:04 ` Gilles Chanteperdrix
0 siblings, 1 reply; 10+ messages in thread
From: Wolfgang Grandegger @ 2012-06-19 8:52 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: Xenomai
On 06/19/2012 10:50 AM, Gilles Chanteperdrix wrote:
> On 06/19/2012 10:49 AM, Wolfgang Grandegger wrote:
>> On 06/19/2012 10:33 AM, Gilles Chanteperdrix wrote:
>>> On 06/19/2012 10:25 AM, Wolfgang Grandegger wrote:
>>>> Hello,
>>>>
>>>> the shared memory support of Xenomai's POSIX skin currently only support
>>>> shared memory between rt processes.
>>>
>>> These services are for sharing memory between user-space and
>>> kernel-space. In order to share memory between user-space processes, you
>>> can use plain linux shared memories.
>>
>> But then I will get mode switches due to page faults, right?
>
> No, there should not be any page fault.
But that's what we observe on a i.MX53 and i.MX6Q board. IIRC, the first
access usually results in a page fault.
Wolfgang.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Xenomai] Sharing memory between rt-posix and standard-posix apps
2012-06-19 8:52 ` Wolfgang Grandegger
@ 2012-06-19 9:04 ` Gilles Chanteperdrix
2012-06-19 9:29 ` Wolfgang Grandegger
0 siblings, 1 reply; 10+ messages in thread
From: Gilles Chanteperdrix @ 2012-06-19 9:04 UTC (permalink / raw)
To: Wolfgang Grandegger; +Cc: Xenomai
On 06/19/2012 10:52 AM, Wolfgang Grandegger wrote:
> On 06/19/2012 10:50 AM, Gilles Chanteperdrix wrote:
>> On 06/19/2012 10:49 AM, Wolfgang Grandegger wrote:
>>> On 06/19/2012 10:33 AM, Gilles Chanteperdrix wrote:
>>>> On 06/19/2012 10:25 AM, Wolfgang Grandegger wrote:
>>>>> Hello,
>>>>>
>>>>> the shared memory support of Xenomai's POSIX skin currently only support
>>>>> shared memory between rt processes.
>>>>
>>>> These services are for sharing memory between user-space and
>>>> kernel-space. In order to share memory between user-space processes, you
>>>> can use plain linux shared memories.
>>>
>>> But then I will get mode switches due to page faults, right?
>>
>> No, there should not be any page fault.
>
> But that's what we observe on a i.MX53 and i.MX6Q board. IIRC, the first
> access usually results in a page fault.
And you do not get the same behaviour with posix skin shared memories ?
--
Gilles.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Xenomai] Sharing memory between rt-posix and standard-posix apps
2012-06-19 9:04 ` Gilles Chanteperdrix
@ 2012-06-19 9:29 ` Wolfgang Grandegger
2012-06-19 9:38 ` Gilles Chanteperdrix
0 siblings, 1 reply; 10+ messages in thread
From: Wolfgang Grandegger @ 2012-06-19 9:29 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: Xenomai
On 06/19/2012 11:04 AM, Gilles Chanteperdrix wrote:
> On 06/19/2012 10:52 AM, Wolfgang Grandegger wrote:
>> On 06/19/2012 10:50 AM, Gilles Chanteperdrix wrote:
>>> On 06/19/2012 10:49 AM, Wolfgang Grandegger wrote:
>>>> On 06/19/2012 10:33 AM, Gilles Chanteperdrix wrote:
>>>>> On 06/19/2012 10:25 AM, Wolfgang Grandegger wrote:
>>>>>> Hello,
>>>>>>
>>>>>> the shared memory support of Xenomai's POSIX skin currently only support
>>>>>> shared memory between rt processes.
>>>>>
>>>>> These services are for sharing memory between user-space and
>>>>> kernel-space. In order to share memory between user-space processes, you
>>>>> can use plain linux shared memories.
>>>>
>>>> But then I will get mode switches due to page faults, right?
>>>
>>> No, there should not be any page fault.
>>
>> But that's what we observe on a i.MX53 and i.MX6Q board. IIRC, the first
>> access usually results in a page fault.
>
> And you do not get the same behaviour with posix skin shared memories ?
Right, and that's because do_pagefault() is called somewhere in the
initialization, IIRC. But I will redo my tests now.
Anyway, if I use the POSIX skin the shared memory functions in there
will be used automatically. But I could use __real_shm_open and
__real_mmap, right? ... and access the page once per page in the
initialization phase. Then no more page faults should happen.
Wolfgang.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Xenomai] Sharing memory between rt-posix and standard-posix apps
2012-06-19 9:29 ` Wolfgang Grandegger
@ 2012-06-19 9:38 ` Gilles Chanteperdrix
2012-06-20 7:33 ` Wolfgang Grandegger
0 siblings, 1 reply; 10+ messages in thread
From: Gilles Chanteperdrix @ 2012-06-19 9:38 UTC (permalink / raw)
To: Wolfgang Grandegger; +Cc: Xenomai
On 06/19/2012 11:29 AM, Wolfgang Grandegger wrote:
> On 06/19/2012 11:04 AM, Gilles Chanteperdrix wrote:
>> On 06/19/2012 10:52 AM, Wolfgang Grandegger wrote:
>>> On 06/19/2012 10:50 AM, Gilles Chanteperdrix wrote:
>>>> On 06/19/2012 10:49 AM, Wolfgang Grandegger wrote:
>>>>> On 06/19/2012 10:33 AM, Gilles Chanteperdrix wrote:
>>>>>> On 06/19/2012 10:25 AM, Wolfgang Grandegger wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> the shared memory support of Xenomai's POSIX skin currently only support
>>>>>>> shared memory between rt processes.
>>>>>>
>>>>>> These services are for sharing memory between user-space and
>>>>>> kernel-space. In order to share memory between user-space processes, you
>>>>>> can use plain linux shared memories.
>>>>>
>>>>> But then I will get mode switches due to page faults, right?
>>>>
>>>> No, there should not be any page fault.
>>>
>>> But that's what we observe on a i.MX53 and i.MX6Q board. IIRC, the first
>>> access usually results in a page fault.
>>
>> And you do not get the same behaviour with posix skin shared memories ?
>
> Right, and that's because do_pagefault() is called somewhere in the
> initialization, IIRC. But I will redo my tests now.
Yes, I forgot about that, we pre-fault shared memory on ARM, in order to
avoid the page fault on first access.
>
> Anyway, if I use the POSIX skin the shared memory functions in there
> will be used automatically. But I could use __real_shm_open and
> __real_mmap, right?
Or you can used the wrapped version, but without enabling support for
xenomai posix shared memories in the kernel configuration.
... and access the page once per page in the
> initialization phase. Then no more page faults should happen.
Yes. It is a bit ugly, but should work.
--
Gilles.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Xenomai] Sharing memory between rt-posix and standard-posix apps
2012-06-19 9:38 ` Gilles Chanteperdrix
@ 2012-06-20 7:33 ` Wolfgang Grandegger
2012-06-20 9:18 ` Gilles Chanteperdrix
0 siblings, 1 reply; 10+ messages in thread
From: Wolfgang Grandegger @ 2012-06-20 7:33 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: Xenomai
On 06/19/2012 11:38 AM, Gilles Chanteperdrix wrote:
> On 06/19/2012 11:29 AM, Wolfgang Grandegger wrote:
>> On 06/19/2012 11:04 AM, Gilles Chanteperdrix wrote:
>>> On 06/19/2012 10:52 AM, Wolfgang Grandegger wrote:
>>>> On 06/19/2012 10:50 AM, Gilles Chanteperdrix wrote:
>>>>> On 06/19/2012 10:49 AM, Wolfgang Grandegger wrote:
>>>>>> On 06/19/2012 10:33 AM, Gilles Chanteperdrix wrote:
>>>>>>> On 06/19/2012 10:25 AM, Wolfgang Grandegger wrote:
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> the shared memory support of Xenomai's POSIX skin currently only support
>>>>>>>> shared memory between rt processes.
>>>>>>>
>>>>>>> These services are for sharing memory between user-space and
>>>>>>> kernel-space. In order to share memory between user-space processes, you
>>>>>>> can use plain linux shared memories.
>>>>>>
>>>>>> But then I will get mode switches due to page faults, right?
>>>>>
>>>>> No, there should not be any page fault.
>>>>
>>>> But that's what we observe on a i.MX53 and i.MX6Q board. IIRC, the first
>>>> access usually results in a page fault.
>>>
>>> And you do not get the same behaviour with posix skin shared memories ?
>>
>> Right, and that's because do_pagefault() is called somewhere in the
>> initialization, IIRC. But I will redo my tests now.
>
> Yes, I forgot about that, we pre-fault shared memory on ARM, in order to
> avoid the page fault on first access.
>
>>
>> Anyway, if I use the POSIX skin the shared memory functions in there
>> will be used automatically. But I could use __real_shm_open and
>> __real_mmap, right?
>
> Or you can used the wrapped version, but without enabling support for
> xenomai posix shared memories in the kernel configuration.
>
>
> ... and access the page once per page in the
>> initialization phase. Then no more page faults should happen.
>
> Yes. It is a bit ugly, but should work.
I forgot. The problem was not the read but the first write to a page
triggering the page fault. Therefore it would make sense to wrap just
mmap and doing the pre-faulting if XENO_OPT_POSIX_SHM is not set.
Wolfgang.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Xenomai] Sharing memory between rt-posix and standard-posix apps
2012-06-20 7:33 ` Wolfgang Grandegger
@ 2012-06-20 9:18 ` Gilles Chanteperdrix
0 siblings, 0 replies; 10+ messages in thread
From: Gilles Chanteperdrix @ 2012-06-20 9:18 UTC (permalink / raw)
To: Wolfgang Grandegger; +Cc: Xenomai
On 06/20/2012 09:33 AM, Wolfgang Grandegger wrote:
> On 06/19/2012 11:38 AM, Gilles Chanteperdrix wrote:
>> On 06/19/2012 11:29 AM, Wolfgang Grandegger wrote:
>>> On 06/19/2012 11:04 AM, Gilles Chanteperdrix wrote:
>>>> On 06/19/2012 10:52 AM, Wolfgang Grandegger wrote:
>>>>> On 06/19/2012 10:50 AM, Gilles Chanteperdrix wrote:
>>>>>> On 06/19/2012 10:49 AM, Wolfgang Grandegger wrote:
>>>>>>> On 06/19/2012 10:33 AM, Gilles Chanteperdrix wrote:
>>>>>>>> On 06/19/2012 10:25 AM, Wolfgang Grandegger wrote:
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> the shared memory support of Xenomai's POSIX skin currently only support
>>>>>>>>> shared memory between rt processes.
>>>>>>>>
>>>>>>>> These services are for sharing memory between user-space and
>>>>>>>> kernel-space. In order to share memory between user-space processes, you
>>>>>>>> can use plain linux shared memories.
>>>>>>>
>>>>>>> But then I will get mode switches due to page faults, right?
>>>>>>
>>>>>> No, there should not be any page fault.
>>>>>
>>>>> But that's what we observe on a i.MX53 and i.MX6Q board. IIRC, the first
>>>>> access usually results in a page fault.
>>>>
>>>> And you do not get the same behaviour with posix skin shared memories ?
>>>
>>> Right, and that's because do_pagefault() is called somewhere in the
>>> initialization, IIRC. But I will redo my tests now.
>>
>> Yes, I forgot about that, we pre-fault shared memory on ARM, in order to
>> avoid the page fault on first access.
>>
>>>
>>> Anyway, if I use the POSIX skin the shared memory functions in there
>>> will be used automatically. But I could use __real_shm_open and
>>> __real_mmap, right?
>>
>> Or you can used the wrapped version, but without enabling support for
>> xenomai posix shared memories in the kernel configuration.
>>
>>
>> ... and access the page once per page in the
>>> initialization phase. Then no more page faults should happen.
>>
>> Yes. It is a bit ugly, but should work.
>
> I forgot. The problem was not the read but the first write to a page
> triggering the page fault. Therefore it would make sense to wrap just
> mmap and doing the pre-faulting if XENO_OPT_POSIX_SHM is not set.
Yes, when we prefault in kernel-space, we prefault write faults. We can
do that, yes.
--
Gilles.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2012-06-20 9:18 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-19 8:25 [Xenomai] Sharing memory between rt-posix and standard-posix apps Wolfgang Grandegger
2012-06-19 8:33 ` Gilles Chanteperdrix
2012-06-19 8:49 ` Wolfgang Grandegger
2012-06-19 8:50 ` Gilles Chanteperdrix
2012-06-19 8:52 ` Wolfgang Grandegger
2012-06-19 9:04 ` Gilles Chanteperdrix
2012-06-19 9:29 ` Wolfgang Grandegger
2012-06-19 9:38 ` Gilles Chanteperdrix
2012-06-20 7:33 ` Wolfgang Grandegger
2012-06-20 9:18 ` Gilles Chanteperdrix
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.