Re: [Xen-devel] POSIX error names and codes in PV protocols

2017-01-27 Thread Oleksandr Andrushchenko

On 01/27/2017 10:01 AM, Jan Beulich wrote:

On 26.01.17 at 18:28,  wrote:

The problem is that it is not exposed to Linux, but I can see it
in FreeBSD [1] and the helper to convert error codes [2] there as well.
Is there any reason these are not available in Linux?

Well, the header should eventually get added there (but see also
Julien's reply as to why no-one may have cared so far).


Besides this fact,
Konrad, Stefano, are you ok that we say in the protocol file that
these are the error codes used?
As error codes are unsigned ints, what should be used in packets?
uint16_t or uint32_t?

Conventionally error codes are signed ints, and the width you
need should be mostly dictated by other structure size constraints
(i.e. if you have ample of space, int32_t may be more efficient to
access, but if you have space restrictions, then int16_t should be
fine as it can represent quite a bit larger a range than error codes
will cover in the foreseeable future).

yes, what I put in sndif now is:
/*
 * STATUS RETURN CODES.
 *
 * Status return code is zero on success and -XEN_EXX on failure.
 */
...
 * status - int32_t, response status, zero on success and -XEN_EXX on 
failure

...

Jan




___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


Re: [Xen-devel] POSIX error names and codes in PV protocols

2017-01-27 Thread Jan Beulich
>>> On 26.01.17 at 18:28,  wrote:
> The problem is that it is not exposed to Linux, but I can see it
> in FreeBSD [1] and the helper to convert error codes [2] there as well.
> Is there any reason these are not available in Linux?

Well, the header should eventually get added there (but see also
Julien's reply as to why no-one may have cared so far).

> Besides this fact,
> Konrad, Stefano, are you ok that we say in the protocol file that
> these are the error codes used?
> As error codes are unsigned ints, what should be used in packets?
> uint16_t or uint32_t?

Conventionally error codes are signed ints, and the width you
need should be mostly dictated by other structure size constraints
(i.e. if you have ample of space, int32_t may be more efficient to
access, but if you have space restrictions, then int16_t should be
fine as it can represent quite a bit larger a range than error codes
will cover in the foreseeable future).

Jan


___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


Re: [Xen-devel] POSIX error names and codes in PV protocols

2017-01-26 Thread Oleksandr Andrushchenko



On 01/26/2017 08:16 PM, Roger Pau Monné wrote:

On Thu, Jan 26, 2017 at 08:14:10PM +0200, Oleksandr Andrushchenko wrote:

On 01/26/2017 07:38 PM, Roger Pau Monné wrote:

On Thu, Jan 26, 2017 at 07:28:44PM +0200, Oleksandr Andrushchenko wrote:

On 01/26/2017 05:44 PM, Jan Beulich wrote:

On 26.01.17 at 15:40,  wrote:

There is some work happening on new PV protocols: sndif [1],

displif [2], PV calls [3] and the common part of those is that

error/status codes must be returned as a part of a response packet.

For that Konrad suggested [1] (and Stefano already used in [3]) POSIX

to be employed here instead of defining protocol specific error codes.

The problem I see here is that POSIX only defines names of the errors,

but not values [4]. So, in order to use POSIX one still needs to define

the values (names must be the same, but values may differ for different
OSes).

So, the question is what would be the best option to

a) have those numbers defined in OS agnostic way

b) have those defined for all PV protocols

Stefano has already defined the error code values in his work [3],

but for other protocols this should be reimplemented again.

Aren't these simply what public/errno.h provides? Why would any
Xen specific protocol want to define their own, now that we have
this base set?

Jan

Indeed, thank you
The problem is that it is not exposed to Linux, but I can see it
in FreeBSD [1] and the helper to convert error codes [2] there as well.
Is there any reason these are not available in Linux?

Xen error codes are Linux error codes, so I guess there's basically no need to
use them on Linux (although it would be good, just so that people is aware that
Xen and Linux are in different theoretical spaces, which happen to match in
Linux's case).

Roger.

Thank you for clarifications.
Does it mean that I can state in PV protocols that XEN_E??? error codes are
used and still use Linux error codes directly in Linux front/back w/o
complains
from the community because of no conversion? :)

I guess if it's inside of the Linux kernel that's fine (although that's a
question for the Linux maintainers). If it runs in user-space you certainly
need to use the XEN_E error codes.

clear

Roger.

Thank you

___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


Re: [Xen-devel] POSIX error names and codes in PV protocols

2017-01-26 Thread Roger Pau Monné
On Thu, Jan 26, 2017 at 08:14:10PM +0200, Oleksandr Andrushchenko wrote:
> On 01/26/2017 07:38 PM, Roger Pau Monné wrote:
> > On Thu, Jan 26, 2017 at 07:28:44PM +0200, Oleksandr Andrushchenko wrote:
> > > On 01/26/2017 05:44 PM, Jan Beulich wrote:
> > > > > > > On 26.01.17 at 15:40,  wrote:
> > > > > There is some work happening on new PV protocols: sndif [1],
> > > > > 
> > > > > displif [2], PV calls [3] and the common part of those is that
> > > > > 
> > > > > error/status codes must be returned as a part of a response packet.
> > > > > 
> > > > > For that Konrad suggested [1] (and Stefano already used in [3]) POSIX
> > > > > 
> > > > > to be employed here instead of defining protocol specific error codes.
> > > > > 
> > > > > The problem I see here is that POSIX only defines names of the errors,
> > > > > 
> > > > > but not values [4]. So, in order to use POSIX one still needs to 
> > > > > define
> > > > > 
> > > > > the values (names must be the same, but values may differ for 
> > > > > different
> > > > > OSes).
> > > > > 
> > > > > So, the question is what would be the best option to
> > > > > 
> > > > > a) have those numbers defined in OS agnostic way
> > > > > 
> > > > > b) have those defined for all PV protocols
> > > > > 
> > > > > Stefano has already defined the error code values in his work [3],
> > > > > 
> > > > > but for other protocols this should be reimplemented again.
> > > > Aren't these simply what public/errno.h provides? Why would any
> > > > Xen specific protocol want to define their own, now that we have
> > > > this base set?
> > > > 
> > > > Jan
> > > Indeed, thank you
> > > The problem is that it is not exposed to Linux, but I can see it
> > > in FreeBSD [1] and the helper to convert error codes [2] there as well.
> > > Is there any reason these are not available in Linux?
> > Xen error codes are Linux error codes, so I guess there's basically no need 
> > to
> > use them on Linux (although it would be good, just so that people is aware 
> > that
> > Xen and Linux are in different theoretical spaces, which happen to match in
> > Linux's case).
> > 
> > Roger.
> Thank you for clarifications.
> Does it mean that I can state in PV protocols that XEN_E??? error codes are
> used and still use Linux error codes directly in Linux front/back w/o
> complains
> from the community because of no conversion? :)

I guess if it's inside of the Linux kernel that's fine (although that's a
question for the Linux maintainers). If it runs in user-space you certainly
need to use the XEN_E error codes.

Roger.

___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


Re: [Xen-devel] POSIX error names and codes in PV protocols

2017-01-26 Thread Oleksandr Andrushchenko

On 01/26/2017 07:38 PM, Roger Pau Monné wrote:

On Thu, Jan 26, 2017 at 07:28:44PM +0200, Oleksandr Andrushchenko wrote:

On 01/26/2017 05:44 PM, Jan Beulich wrote:

On 26.01.17 at 15:40,  wrote:

There is some work happening on new PV protocols: sndif [1],

displif [2], PV calls [3] and the common part of those is that

error/status codes must be returned as a part of a response packet.

For that Konrad suggested [1] (and Stefano already used in [3]) POSIX

to be employed here instead of defining protocol specific error codes.

The problem I see here is that POSIX only defines names of the errors,

but not values [4]. So, in order to use POSIX one still needs to define

the values (names must be the same, but values may differ for different
OSes).

So, the question is what would be the best option to

a) have those numbers defined in OS agnostic way

b) have those defined for all PV protocols

Stefano has already defined the error code values in his work [3],

but for other protocols this should be reimplemented again.

Aren't these simply what public/errno.h provides? Why would any
Xen specific protocol want to define their own, now that we have
this base set?

Jan

Indeed, thank you
The problem is that it is not exposed to Linux, but I can see it
in FreeBSD [1] and the helper to convert error codes [2] there as well.
Is there any reason these are not available in Linux?

Xen error codes are Linux error codes, so I guess there's basically no need to
use them on Linux (although it would be good, just so that people is aware that
Xen and Linux are in different theoretical spaces, which happen to match in
Linux's case).

Roger.

Thank you for clarifications.
Does it mean that I can state in PV protocols that XEN_E??? error codes are
used and still use Linux error codes directly in Linux front/back w/o 
complains

from the community because of no conversion? :)


___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


Re: [Xen-devel] POSIX error names and codes in PV protocols

2017-01-26 Thread Roger Pau Monné
On Thu, Jan 26, 2017 at 07:28:44PM +0200, Oleksandr Andrushchenko wrote:
> On 01/26/2017 05:44 PM, Jan Beulich wrote:
> > > > > On 26.01.17 at 15:40,  wrote:
> > > There is some work happening on new PV protocols: sndif [1],
> > > 
> > > displif [2], PV calls [3] and the common part of those is that
> > > 
> > > error/status codes must be returned as a part of a response packet.
> > > 
> > > For that Konrad suggested [1] (and Stefano already used in [3]) POSIX
> > > 
> > > to be employed here instead of defining protocol specific error codes.
> > > 
> > > The problem I see here is that POSIX only defines names of the errors,
> > > 
> > > but not values [4]. So, in order to use POSIX one still needs to define
> > > 
> > > the values (names must be the same, but values may differ for different
> > > OSes).
> > > 
> > > So, the question is what would be the best option to
> > > 
> > > a) have those numbers defined in OS agnostic way
> > > 
> > > b) have those defined for all PV protocols
> > > 
> > > Stefano has already defined the error code values in his work [3],
> > > 
> > > but for other protocols this should be reimplemented again.
> > Aren't these simply what public/errno.h provides? Why would any
> > Xen specific protocol want to define their own, now that we have
> > this base set?
> > 
> > Jan
> Indeed, thank you
> The problem is that it is not exposed to Linux, but I can see it
> in FreeBSD [1] and the helper to convert error codes [2] there as well.
> Is there any reason these are not available in Linux?

Xen error codes are Linux error codes, so I guess there's basically no need to
use them on Linux (although it would be good, just so that people is aware that
Xen and Linux are in different theoretical spaces, which happen to match in
Linux's case).

Roger.

___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


Re: [Xen-devel] POSIX error names and codes in PV protocols

2017-01-26 Thread Julien Grall

Hi,

On 26/01/2017 17:28, Oleksandr Andrushchenko wrote:

On 01/26/2017 05:44 PM, Jan Beulich wrote:

On 26.01.17 at 15:40,  wrote:

There is some work happening on new PV protocols: sndif [1],

displif [2], PV calls [3] and the common part of those is that

error/status codes must be returned as a part of a response packet.

For that Konrad suggested [1] (and Stefano already used in [3]) POSIX

to be employed here instead of defining protocol specific error codes.

The problem I see here is that POSIX only defines names of the errors,

but not values [4]. So, in order to use POSIX one still needs to define

the values (names must be the same, but values may differ for different
OSes).

So, the question is what would be the best option to

a) have those numbers defined in OS agnostic way

b) have those defined for all PV protocols

Stefano has already defined the error code values in his work [3],

but for other protocols this should be reimplemented again.

Aren't these simply what public/errno.h provides? Why would any
Xen specific protocol want to define their own, now that we have
this base set?

Jan

Indeed, thank you
The problem is that it is not exposed to Linux, but I can see it
in FreeBSD [1] and the helper to convert error codes [2] there as well.
Is there any reason these are not available in Linux?


This is because Linux and Xen are using the exact same error codes. The 
one in FreeBSD differs a bit, hence the helper to convert errors.


Strictly speaking Linux should have a converter, but it is not necessary 
today.


Cheers,

--
Julien Grall

___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


Re: [Xen-devel] POSIX error names and codes in PV protocols

2017-01-26 Thread Oleksandr Andrushchenko

On 01/26/2017 05:44 PM, Jan Beulich wrote:

On 26.01.17 at 15:40,  wrote:

There is some work happening on new PV protocols: sndif [1],

displif [2], PV calls [3] and the common part of those is that

error/status codes must be returned as a part of a response packet.

For that Konrad suggested [1] (and Stefano already used in [3]) POSIX

to be employed here instead of defining protocol specific error codes.

The problem I see here is that POSIX only defines names of the errors,

but not values [4]. So, in order to use POSIX one still needs to define

the values (names must be the same, but values may differ for different
OSes).

So, the question is what would be the best option to

a) have those numbers defined in OS agnostic way

b) have those defined for all PV protocols

Stefano has already defined the error code values in his work [3],

but for other protocols this should be reimplemented again.

Aren't these simply what public/errno.h provides? Why would any
Xen specific protocol want to define their own, now that we have
this base set?

Jan

Indeed, thank you
The problem is that it is not exposed to Linux, but I can see it
in FreeBSD [1] and the helper to convert error codes [2] there as well.
Is there any reason these are not available in Linux?

Besides this fact,
Konrad, Stefano, are you ok that we say in the protocol file that
these are the error codes used?
As error codes are unsigned ints, what should be used in packets?
uint16_t or uint32_t?

Thank you,
Oleksandr

[1] https://github.com/freebsd/freebsd/blob/master/sys/xen/interface/errno.h
[2] https://github.com/freebsd/freebsd/blob/master/sys/xen/error.h


___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


Re: [Xen-devel] POSIX error names and codes in PV protocols

2017-01-26 Thread Jan Beulich
>>> On 26.01.17 at 15:40,  wrote:
> There is some work happening on new PV protocols: sndif [1],
> 
> displif [2], PV calls [3] and the common part of those is that
> 
> error/status codes must be returned as a part of a response packet.
> 
> For that Konrad suggested [1] (and Stefano already used in [3]) POSIX
> 
> to be employed here instead of defining protocol specific error codes.
> 
> The problem I see here is that POSIX only defines names of the errors,
> 
> but not values [4]. So, in order to use POSIX one still needs to define
> 
> the values (names must be the same, but values may differ for different 
> OSes).
> 
> So, the question is what would be the best option to
> 
> a) have those numbers defined in OS agnostic way
> 
> b) have those defined for all PV protocols
> 
> Stefano has already defined the error code values in his work [3],
> 
> but for other protocols this should be reimplemented again.

Aren't these simply what public/errno.h provides? Why would any
Xen specific protocol want to define their own, now that we have
this base set?

Jan


___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel