diff mbox

[v3] xenomai: Add choice for enabling/disabling Cobalt/Mercury core

Message ID 20170410123226.3719-1-sikor6@gmail.com
State Superseded
Headers show

Commit Message

sikor6@gmail.com April 10, 2017, 12:32 p.m. UTC
Add an option choice for Cobalt or Mercury core
depending on option BR2_LINUX_KERNEL_EXT_XENOMAI.

Signed-off-by: Pawel Sikora <sikor6@gmail.com>
---
Changes v2 -> v3:
 - Corrections in help (Arnout V.)

 package/xenomai/Config.in  | 27 +++++++++++++++++++++++++++
 package/xenomai/xenomai.mk |  6 ++++++
 2 files changed, 33 insertions(+)

Comments

Arnout Vandecappelle April 10, 2017, 1:44 p.m. UTC | #1
On 10-04-17 14:32, Pawel Sikora wrote:
> Add an option choice for Cobalt or Mercury core
> depending on option BR2_LINUX_KERNEL_EXT_XENOMAI.
> 
> Signed-off-by: Pawel Sikora <sikor6@gmail.com>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

 As noticed, this will collide with the SMP patch.

 Pawel, if you would resend a v4 where both patches are kept together in a patch
series, make sure that you copy my Reviewed-by tag (put it below your
Signed-off-by).

 Regards,
 Arnout

> ---
> Changes v2 -> v3:
>  - Corrections in help (Arnout V.)
> 
>  package/xenomai/Config.in  | 27 +++++++++++++++++++++++++++
>  package/xenomai/xenomai.mk |  6 ++++++
>  2 files changed, 33 insertions(+)
> 
> diff --git a/package/xenomai/Config.in b/package/xenomai/Config.in
> index b548ee810..324f5025a 100644
> --- a/package/xenomai/Config.in
> +++ b/package/xenomai/Config.in
> @@ -51,6 +51,33 @@ config BR2_PACKAGE_XENOMAI_VERSION
>  	  BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH, in the Linux
>  	  Kernel -> Linux Kernel Extensions menu.
>  
> +choice
> +	prompt "Xenomai core"
> +	default BR2_PACKAGE_XENOMAI_MERCURY
> +	help
> +	  Select the Xenomai core: dual kernel (Cobalt)
> +	  or native Linux Kernel (Mercury).
> +
> +config BR2_PACKAGE_XENOMAI_MERCURY
> +	bool "Mercury"
> +	depends on !BR2_LINUX_KERNEL_EXT_XENOMAI
> +	help
> +	  Select Mercury core for the Xenomai userspace.
> +	  You want to use it if you have the native Linux Kernel.
> +
> +config BR2_PACKAGE_XENOMAI_COBALT
> +	bool "Cobalt"
> +	help
> +	  Select Cobalt core (dual kernel) for the Xenomai
> +	  userspace. Use this if you use a Xenomai-patched
> +	  Linux kernel.
> +
> +	  If you want to use Cobalt core, your kernel must have
> +	  the Adeos and Xenomai patches applied to it. You can
> +	  add these through the BR2_LINUX_KERNEL_EXT_XENOMAI option
> +	  in the Linux Kernel Extensions menu.
> +endchoice
> +
>  config BR2_PACKAGE_XENOMAI_TESTSUITE
>  	bool "Install testsuite"
>  	help
> diff --git a/package/xenomai/xenomai.mk b/package/xenomai/xenomai.mk
> index c9e810e05..73d9617b1 100644
> --- a/package/xenomai/xenomai.mk
> +++ b/package/xenomai/xenomai.mk
> @@ -23,6 +23,12 @@ XENOMAI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-user
>  
>  XENOMAI_CONF_OPTS += --includedir=/usr/include/xenomai/ --disable-doc-install
>  
> +ifeq ($(BR2_PACKAGE_XENOMAI_MERCURY),y)
> +XENOMAI_CONF_OPTS += --with-core=mercury
> +else
> +XENOMAI_CONF_OPTS += --with-core=cobalt
> +endif
> +
>  define XENOMAI_REMOVE_DEVFILES
>  	for i in xeno-config xeno-info wrap-link.sh ; do \
>  		rm -f $(TARGET_DIR)/usr/bin/$$i ; \
>
Thomas De Schampheleire April 10, 2017, 7:31 p.m. UTC | #2
On Mon, Apr 10, 2017 at 2:32 PM, Pawel Sikora <sikor6@gmail.com> wrote:
> Add an option choice for Cobalt or Mercury core
> depending on option BR2_LINUX_KERNEL_EXT_XENOMAI.
>
> Signed-off-by: Pawel Sikora <sikor6@gmail.com>
> ---
> Changes v2 -> v3:
>  - Corrections in help (Arnout V.)
>
>  package/xenomai/Config.in  | 27 +++++++++++++++++++++++++++
>  package/xenomai/xenomai.mk |  6 ++++++
>  2 files changed, 33 insertions(+)
>
> diff --git a/package/xenomai/Config.in b/package/xenomai/Config.in
> index b548ee810..324f5025a 100644
> --- a/package/xenomai/Config.in
> +++ b/package/xenomai/Config.in
> @@ -51,6 +51,33 @@ config BR2_PACKAGE_XENOMAI_VERSION
>           BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH, in the Linux
>           Kernel -> Linux Kernel Extensions menu.
>
> +choice
> +       prompt "Xenomai core"
> +       default BR2_PACKAGE_XENOMAI_MERCURY
> +       help
> +         Select the Xenomai core: dual kernel (Cobalt)
> +         or native Linux Kernel (Mercury).
> +
> +config BR2_PACKAGE_XENOMAI_MERCURY
> +       bool "Mercury"
> +       depends on !BR2_LINUX_KERNEL_EXT_XENOMAI
> +       help
> +         Select Mercury core for the Xenomai userspace.
> +         You want to use it if you have the native Linux Kernel.
> +
> +config BR2_PACKAGE_XENOMAI_COBALT
> +       bool "Cobalt"
> +       help
> +         Select Cobalt core (dual kernel) for the Xenomai
> +         userspace. Use this if you use a Xenomai-patched
> +         Linux kernel.
> +
> +         If you want to use Cobalt core, your kernel must have

the Cobalt core

> +         the Adeos and Xenomai patches applied to it. You can
> +         add these through the BR2_LINUX_KERNEL_EXT_XENOMAI option
> +         in the Linux Kernel Extensions menu.

With the latest updates, the term 'I-pipe' has disappeared here, I
think it is a relevant term that helps clarifying 'Adeos', no?

More in general: I wonder which level of help we need to provide here.
I expect that people's choice of either Cobalt or Mercury cannot be
driven by the current help above. The choice has severe impact on your
application and system. We could try to extend the help, e.g.
clarifying that only the cobalt core can provide real real-time
guarantees, and that the mercury core's real-time strictness fully
depends on the linux kernel. But perhaps it may be better to
explicitly refer to the Xenomai documentation to make a proper
decision.

Best regards,
Thomas
sikor6@gmail.com April 10, 2017, 8:01 p.m. UTC | #3
Hi,

2017-04-10 21:31 GMT+02:00 Thomas De Schampheleire <
patrickdepinguin@gmail.com>:

> On Mon, Apr 10, 2017 at 2:32 PM, Pawel Sikora <sikor6@gmail.com> wrote:
> > Add an option choice for Cobalt or Mercury core
> > depending on option BR2_LINUX_KERNEL_EXT_XENOMAI.
> >
> > Signed-off-by: Pawel Sikora <sikor6@gmail.com>
> > ---
> > Changes v2 -> v3:
> >  - Corrections in help (Arnout V.)
> >
> >  package/xenomai/Config.in  | 27 +++++++++++++++++++++++++++
> >  package/xenomai/xenomai.mk |  6 ++++++
> >  2 files changed, 33 insertions(+)
> >
> > diff --git a/package/xenomai/Config.in b/package/xenomai/Config.in
> > index b548ee810..324f5025a 100644
> > --- a/package/xenomai/Config.in
> > +++ b/package/xenomai/Config.in
> > @@ -51,6 +51,33 @@ config BR2_PACKAGE_XENOMAI_VERSION
> >           BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH, in the Linux
> >           Kernel -> Linux Kernel Extensions menu.
> >
> > +choice
> > +       prompt "Xenomai core"
> > +       default BR2_PACKAGE_XENOMAI_MERCURY
> > +       help
> > +         Select the Xenomai core: dual kernel (Cobalt)
> > +         or native Linux Kernel (Mercury).
> > +
> > +config BR2_PACKAGE_XENOMAI_MERCURY
> > +       bool "Mercury"
> > +       depends on !BR2_LINUX_KERNEL_EXT_XENOMAI
> > +       help
> > +         Select Mercury core for the Xenomai userspace.
> > +         You want to use it if you have the native Linux Kernel.
> > +
> > +config BR2_PACKAGE_XENOMAI_COBALT
> > +       bool "Cobalt"
> > +       help
> > +         Select Cobalt core (dual kernel) for the Xenomai
> > +         userspace. Use this if you use a Xenomai-patched
> > +         Linux kernel.
> > +
> > +         If you want to use Cobalt core, your kernel must have
>
> the Cobalt core
>
> > +         the Adeos and Xenomai patches applied to it. You can
> > +         add these through the BR2_LINUX_KERNEL_EXT_XENOMAI option
> > +         in the Linux Kernel Extensions menu.
>
> With the latest updates, the term 'I-pipe' has disappeared here, I
> think it is a relevant term that helps clarifying 'Adeos', no?
>

I think I don't get it, could you explain this in detail? Is it that name
of the prompt for patch in Linux Kernel Extensions have just 'Adeos'
in name and should have I-pipe or something else?


>
> More in general: I wonder which level of help we need to provide here.
> I expect that people's choice of either Cobalt or Mercury cannot be
> driven by the current help above. The choice has severe impact on your
> application and system. We could try to extend the help, e.g.
> clarifying that only the cobalt core can provide real real-time
> guarantees, and that the mercury core's real-time strictness fully
> depends on the linux kernel. But perhaps it may be better to
> explicitly refer to the Xenomai documentation to make a proper
> decision.
>

Hmm... You're right. But I think that choice of Xenomai Core should be
driven by knowledge from the documentation - Xenomai documentation.

What about adding just information with clarification about what one can
expect from Mercury/Cobalt as you described above and pointing to
Xenomai documentation for further details?

Regards,
Pawel


>
> Best regards,
> Thomas
>
Arnout Vandecappelle April 10, 2017, 9:10 p.m. UTC | #4
On 10-04-17 22:01, Pawel Sikora wrote:
> Hi,
> 
> 2017-04-10 21:31 GMT+02:00 Thomas De Schampheleire <patrickdepinguin@gmail.com
> <mailto:patrickdepinguin@gmail.com>>:
> 
>     On Mon, Apr 10, 2017 at 2:32 PM, Pawel Sikora <sikor6@gmail.com
>     <mailto:sikor6@gmail.com>> wrote:
>     > Add an option choice for Cobalt or Mercury core
>     > depending on option BR2_LINUX_KERNEL_EXT_XENOMAI.
>     >
>     > Signed-off-by: Pawel Sikora <sikor6@gmail.com <mailto:sikor6@gmail.com>>
>     > ---
>     > Changes v2 -> v3:
>     >  - Corrections in help (Arnout V.)
>     >
>     >  package/xenomai/Config.in  | 27 +++++++++++++++++++++++++++
>     >  package/xenomai/xenomai.mk <http://xenomai.mk> |  6 ++++++
>     >  2 files changed, 33 insertions(+)
>     >
>     > diff --git a/package/xenomai/Config.in b/package/xenomai/Config.in
>     > index b548ee810..324f5025a 100644
>     > --- a/package/xenomai/Config.in
>     > +++ b/package/xenomai/Config.in
>     > @@ -51,6 +51,33 @@ config BR2_PACKAGE_XENOMAI_VERSION
>     >           BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH, in the Linux
>     >           Kernel -> Linux Kernel Extensions menu.
>     >
>     > +choice
>     > +       prompt "Xenomai core"
>     > +       default BR2_PACKAGE_XENOMAI_MERCURY
>     > +       help
>     > +         Select the Xenomai core: dual kernel (Cobalt)
>     > +         or native Linux Kernel (Mercury).
>     > +
>     > +config BR2_PACKAGE_XENOMAI_MERCURY
>     > +       bool "Mercury"
>     > +       depends on !BR2_LINUX_KERNEL_EXT_XENOMAI
>     > +       help
>     > +         Select Mercury core for the Xenomai userspace.
>     > +         You want to use it if you have the native Linux Kernel.
>     > +
>     > +config BR2_PACKAGE_XENOMAI_COBALT
>     > +       bool "Cobalt"
>     > +       help
>     > +         Select Cobalt core (dual kernel) for the Xenomai
>     > +         userspace. Use this if you use a Xenomai-patched
>     > +         Linux kernel.
>     > +
>     > +         If you want to use Cobalt core, your kernel must have
> 
>     the Cobalt core
> 
>     > +         the Adeos and Xenomai patches applied to it. You can
>     > +         add these through the BR2_LINUX_KERNEL_EXT_XENOMAI option
>     > +         in the Linux Kernel Extensions menu.
> 
>     With the latest updates, the term 'I-pipe' has disappeared here, I
>     think it is a relevant term that helps clarifying 'Adeos', no?
> 
> 
> I think I don't get it, could you explain this in detail? Is it that name
> of the prompt for patch in Linux Kernel Extensions have just 'Adeos'
> in name and should have I-pipe or something else?

 I think he just means to replace Adeos with Adeos I-Pipe.

>  
> 
> 
>     More in general: I wonder which level of help we need to provide here.
>     I expect that people's choice of either Cobalt or Mercury cannot be
>     driven by the current help above. The choice has severe impact on your
>     application and system. We could try to extend the help, e.g.
>     clarifying that only the cobalt core can provide real real-time
>     guarantees, and that the mercury core's real-time strictness fully
>     depends on the linux kernel. But perhaps it may be better to
>     explicitly refer to the Xenomai documentation to make a proper
>     decision.
> 
> 
> Hmm... You're right. But I think that choice of Xenomai Core should be
> driven by knowledge from the documentation - Xenomai documentation.
> 
> What about adding just information with clarification about what one can
> expect from Mercury/Cobalt as you described above and pointing to
> Xenomai documentation for further details?

 In my view, we indeed can't provide enough documentation in the help text to
help the user make the choice between Cobalt and Mercury. So it doesn't make
sense adding a very long text here. But the Xenomai documentation about this is
quite clear and extensive, and I think we can assume that the user has read some
of that before enabling Xenomai.

 What we do need in the help text is:

- remind the user that Cobalt is the dual kernel and Mercury is the unikernel;

- remind the user that for Cobalt, he has to make sure that the kernel is
properly patched.


 Regards,
 Arnout
diff mbox

Patch

diff --git a/package/xenomai/Config.in b/package/xenomai/Config.in
index b548ee810..324f5025a 100644
--- a/package/xenomai/Config.in
+++ b/package/xenomai/Config.in
@@ -51,6 +51,33 @@  config BR2_PACKAGE_XENOMAI_VERSION
 	  BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH, in the Linux
 	  Kernel -> Linux Kernel Extensions menu.
 
+choice
+	prompt "Xenomai core"
+	default BR2_PACKAGE_XENOMAI_MERCURY
+	help
+	  Select the Xenomai core: dual kernel (Cobalt)
+	  or native Linux Kernel (Mercury).
+
+config BR2_PACKAGE_XENOMAI_MERCURY
+	bool "Mercury"
+	depends on !BR2_LINUX_KERNEL_EXT_XENOMAI
+	help
+	  Select Mercury core for the Xenomai userspace.
+	  You want to use it if you have the native Linux Kernel.
+
+config BR2_PACKAGE_XENOMAI_COBALT
+	bool "Cobalt"
+	help
+	  Select Cobalt core (dual kernel) for the Xenomai
+	  userspace. Use this if you use a Xenomai-patched
+	  Linux kernel.
+
+	  If you want to use Cobalt core, your kernel must have
+	  the Adeos and Xenomai patches applied to it. You can
+	  add these through the BR2_LINUX_KERNEL_EXT_XENOMAI option
+	  in the Linux Kernel Extensions menu.
+endchoice
+
 config BR2_PACKAGE_XENOMAI_TESTSUITE
 	bool "Install testsuite"
 	help
diff --git a/package/xenomai/xenomai.mk b/package/xenomai/xenomai.mk
index c9e810e05..73d9617b1 100644
--- a/package/xenomai/xenomai.mk
+++ b/package/xenomai/xenomai.mk
@@ -23,6 +23,12 @@  XENOMAI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-user
 
 XENOMAI_CONF_OPTS += --includedir=/usr/include/xenomai/ --disable-doc-install
 
+ifeq ($(BR2_PACKAGE_XENOMAI_MERCURY),y)
+XENOMAI_CONF_OPTS += --with-core=mercury
+else
+XENOMAI_CONF_OPTS += --with-core=cobalt
+endif
+
 define XENOMAI_REMOVE_DEVFILES
 	for i in xeno-config xeno-info wrap-link.sh ; do \
 		rm -f $(TARGET_DIR)/usr/bin/$$i ; \