Re: [kvm-unit-tests PATCH v7 07/12] s390x: Library resources for CSS tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 18 May 2020 18:07:26 +0200
Pierre Morel <pmorel@xxxxxxxxxxxxx> wrote:

> Provide some definitions and library routines that can be used by
> tests targeting the channel subsystem.
> 
> Debug function can be activated by defining DEBUG_CSS before the
> inclusion of the css.h header file.
> 
> Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx>
> ---
>  lib/s390x/css.h      | 259 +++++++++++++++++++++++++++++++++++++++++++
>  lib/s390x/css_dump.c | 157 ++++++++++++++++++++++++++
>  s390x/Makefile       |   1 +
>  3 files changed, 417 insertions(+)
>  create mode 100644 lib/s390x/css.h
>  create mode 100644 lib/s390x/css_dump.c
> 

(...)

> +struct ccw1 {
> +	unsigned char code;
> +	unsigned char flags;
> +	unsigned short count;

I'm wondering why you're using unsigned {char,short} here, instead of
the uint*_t types everywhere else? It's not wrong, but probably better
to be consistent?

> +	uint32_t data_address;
> +} __attribute__ ((aligned(4)));
> +
> +#define SID_ONE		0x00010000
> +

I think it would be beneficial for the names to somewhat match the
naming in Linux and/or QEMU -- or more speaking names (as you do for
some), which is also good.

> +#define ORB_M_KEY	0xf0000000
> +#define ORB_F_SUSPEND	0x08000000
> +#define ORB_F_STREAMING	0x04000000
> +#define ORB_F_MODIFCTRL	0x02000000
> +#define ORB_F_SYNC	0x01000000
> +#define ORB_F_FORMAT	0x00800000
> +#define ORB_F_PREFETCH	0x00400000
> +#define ORB_F_INIT_IRQ	0x00200000

ORB_F_ISIC? (As it does not refer to 'initialization', but 'initial'.)

> +#define ORB_F_ADDRLIMIT	0x00100000
> +#define ORB_F_SUSP_IRQ	0x00080000

ORB_F_SSIC? (As it deals with suppression.)

> +#define ORB_F_TRANSPORT	0x00040000
> +#define ORB_F_IDAW2	0x00020000

ORB_F_IDAW_FMT2?

Or following Linux/QEMU, use ORB_F_C64 for a certain retro appeal :)

> +#define ORB_F_IDAW_2K	0x00010000
> +#define ORB_M_LPM	0x0000ff00
> +#define ORB_F_LPM_DFLT	0x00008000

That's a default lpm of 0x80, right? It's a bit buried between the orb
definitions, and it also seems to be more of a implementation choice --
move it out from the flags here?

> +#define ORB_F_ILSM	0x00000080

ORB_F_ILS?

> +#define ORB_F_CCW_IND	0x00000040

ORB_F_MIDAW? I had a hard time figuring out that one :)

> +#define ORB_F_ORB_EXT	0x00000001

(...)

> +/*
> + * Try o have a more human representation of the PMCW flags

s/o/to/

> + * each letter in the string represent the first

s/represent/represents/

> + * letter of the associated bit in the flag fields.
> + */

(...)

Generally, looks good to me.




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux