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 2020-05-26 18:30, Cornelia Huck wrote:
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.


Thanks a lot,
I take all your remarks and will update the names for better ones as you suggest.

Regards,
Pierre

--
Pierre Morel
IBM Lab Boeblingen



[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