Re: [PATCH 1 of 3] Remove use of bit fields in kvm trace structure

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

 



Jerone Young wrote:

This patch fixes kvmtrace use on big endian systems. When using bit fields the compiler will lay data out in the wrong order expected when laid down into a file. This fixes it by using one variable instead of using bit fields.

Signed-off-by: Jerone Young <jyoung5@xxxxxxxxxx>

diff --git a/include/linux/kvm.h b/include/linux/kvm.h
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -311,9 +311,13 @@ struct kvm_s390_interrupt {
/* This structure represents a single trace buffer record. */
 struct kvm_trace_rec {
-	__u32 event:28;
-	__u32 extra_u32:3;
-	__u32 cycle_in:1;
+	/* variable rec_val
+ 	 * is split into:
+ 	 * bits 0 - 27  -> event id
+ 	 * bits 28 -30  -> number of extra data args of size u32
+ 	 * bits 31      -> binary indicator for if tsc is in record
+ 	 */
+	__u32 rec_val;

Please use #defines for shifts and masks instead of open-coding. These #defines would be part of the public interface.

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM Development]     [KVM ARM]     [KVM ia64]     [Linux Virtualization]     [Linux USB Devel]     [Linux Video]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux