> +/* > + * Guest has page alignment and padding requirements. At the host, it will > + * only lead to wasted space at the vcpu struct. For this reason, the struct > + * is not anonymous > + */ > +union kvm_hv_clock { > + struct kvm_hv_clock_s { > + u64 tsc_mult; > + u64 now_ns; > + /* That's the wall clock, not the water closet */ > + u64 wc_sec; > + u64 last_tsc; > + /* At first, we could use the tsc value as a marker, but Jeremy > + * well noted that it will cause us locking problems in 32-bit > + * sys, so we have a special version field */ > + u32 version; > + } fields; > + char page_align[PAGE_SIZE]; > +};
What is the point in using a whole page per vcpu? You probably don't want struct kvm_hv_clock_s cross a page border. Is that the only reason or are there other constrains too? As the kvm clock looks quite simliar to what xen does, how about making the structs binary-compatible or simply reuse the xen version (struct vcpu_time_info in xen/interface/xen.h)? cheers, Gerd ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel