All of lore.kernel.org
 help / color / mirror / Atom feed
* arch/x86/kvm/x86.c:3354:1: error: unsupported size for integer register
@ 2021-11-14  7:17 ` kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2021-11-14  7:17 UTC (permalink / raw)
  To: David Woodhouse; +Cc: kbuild-all, linux-kernel, Paolo Bonzini

[-- Attachment #1: Type: text/plain, Size: 8668 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   c8c109546a19613d323a319d0c921cb1f317e629
commit: 7e2175ebd695f17860c5bd4ad7616cce12ed4591 KVM: x86: Fix recording of guest steal time / preempted status
date:   3 days ago
config: i386-randconfig-a004-20210930 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7e2175ebd695f17860c5bd4ad7616cce12ed4591
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 7e2175ebd695f17860c5bd4ad7616cce12ed4591
        # save the attached .config to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash arch/x86/kvm/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   arch/x86/kvm/x86.c: In function 'record_steal_time':
>> arch/x86/kvm/x86.c:3354:1: error: unsupported size for integer register
    3354 | }
         | ^


vim +3354 arch/x86/kvm/x86.c

0baedd79271306 Vitaly Kuznetsov 2020-03-25  3260  
c9aaa8957f203b Glauber Costa    2011-07-11  3261  static void record_steal_time(struct kvm_vcpu *vcpu)
c9aaa8957f203b Glauber Costa    2011-07-11  3262  {
7e2175ebd695f1 David Woodhouse  2021-11-02  3263  	struct gfn_to_hva_cache *ghc = &vcpu->arch.st.cache;
7e2175ebd695f1 David Woodhouse  2021-11-02  3264  	struct kvm_steal_time __user *st;
7e2175ebd695f1 David Woodhouse  2021-11-02  3265  	struct kvm_memslots *slots;
7e2175ebd695f1 David Woodhouse  2021-11-02  3266  	u64 steal;
7e2175ebd695f1 David Woodhouse  2021-11-02  3267  	u32 version;
b043138246a410 Boris Ostrovsky  2019-12-05  3268  
30b5c851af7991 David Woodhouse  2021-03-01  3269  	if (kvm_xen_msr_enabled(vcpu->kvm)) {
30b5c851af7991 David Woodhouse  2021-03-01  3270  		kvm_xen_runstate_set_running(vcpu);
30b5c851af7991 David Woodhouse  2021-03-01  3271  		return;
30b5c851af7991 David Woodhouse  2021-03-01  3272  	}
30b5c851af7991 David Woodhouse  2021-03-01  3273  
c9aaa8957f203b Glauber Costa    2011-07-11  3274  	if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED))
c9aaa8957f203b Glauber Costa    2011-07-11  3275  		return;
c9aaa8957f203b Glauber Costa    2011-07-11  3276  
7e2175ebd695f1 David Woodhouse  2021-11-02  3277  	if (WARN_ON_ONCE(current->mm != vcpu->kvm->mm))
c9aaa8957f203b Glauber Costa    2011-07-11  3278  		return;
c9aaa8957f203b Glauber Costa    2011-07-11  3279  
7e2175ebd695f1 David Woodhouse  2021-11-02  3280  	slots = kvm_memslots(vcpu->kvm);
7e2175ebd695f1 David Woodhouse  2021-11-02  3281  
7e2175ebd695f1 David Woodhouse  2021-11-02  3282  	if (unlikely(slots->generation != ghc->generation ||
7e2175ebd695f1 David Woodhouse  2021-11-02  3283  		     kvm_is_error_hva(ghc->hva) || !ghc->memslot)) {
7e2175ebd695f1 David Woodhouse  2021-11-02  3284  		gfn_t gfn = vcpu->arch.st.msr_val & KVM_STEAL_VALID_BITS;
7e2175ebd695f1 David Woodhouse  2021-11-02  3285  
7e2175ebd695f1 David Woodhouse  2021-11-02  3286  		/* We rely on the fact that it fits in a single page. */
7e2175ebd695f1 David Woodhouse  2021-11-02  3287  		BUILD_BUG_ON((sizeof(*st) - 1) & KVM_STEAL_VALID_BITS);
7e2175ebd695f1 David Woodhouse  2021-11-02  3288  
7e2175ebd695f1 David Woodhouse  2021-11-02  3289  		if (kvm_gfn_to_hva_cache_init(vcpu->kvm, ghc, gfn, sizeof(*st)) ||
7e2175ebd695f1 David Woodhouse  2021-11-02  3290  		    kvm_is_error_hva(ghc->hva) || !ghc->memslot)
7e2175ebd695f1 David Woodhouse  2021-11-02  3291  			return;
7e2175ebd695f1 David Woodhouse  2021-11-02  3292  	}
7e2175ebd695f1 David Woodhouse  2021-11-02  3293  
7e2175ebd695f1 David Woodhouse  2021-11-02  3294  	st = (struct kvm_steal_time __user *)ghc->hva;
7e2175ebd695f1 David Woodhouse  2021-11-02  3295  	if (!user_access_begin(st, sizeof(*st)))
7e2175ebd695f1 David Woodhouse  2021-11-02  3296  		return;
b043138246a410 Boris Ostrovsky  2019-12-05  3297  
f38a7b75267f1f Wanpeng Li       2017-12-12  3298  	/*
f38a7b75267f1f Wanpeng Li       2017-12-12  3299  	 * Doing a TLB flush here, on the guest's behalf, can avoid
f38a7b75267f1f Wanpeng Li       2017-12-12  3300  	 * expensive IPIs.
f38a7b75267f1f Wanpeng Li       2017-12-12  3301  	 */
66570e966dd9cb Oliver Upton     2020-08-18  3302  	if (guest_pv_has(vcpu, KVM_FEATURE_PV_TLB_FLUSH)) {
7e2175ebd695f1 David Woodhouse  2021-11-02  3303  		u8 st_preempted = 0;
7e2175ebd695f1 David Woodhouse  2021-11-02  3304  		int err = -EFAULT;
7e2175ebd695f1 David Woodhouse  2021-11-02  3305  
7e2175ebd695f1 David Woodhouse  2021-11-02  3306  		asm volatile("1: xchgb %0, %2\n"
7e2175ebd695f1 David Woodhouse  2021-11-02  3307  			     "xor %1, %1\n"
7e2175ebd695f1 David Woodhouse  2021-11-02  3308  			     "2:\n"
7e2175ebd695f1 David Woodhouse  2021-11-02  3309  			     _ASM_EXTABLE_UA(1b, 2b)
7e2175ebd695f1 David Woodhouse  2021-11-02  3310  			     : "+r" (st_preempted),
7e2175ebd695f1 David Woodhouse  2021-11-02  3311  			       "+&r" (err)
7e2175ebd695f1 David Woodhouse  2021-11-02  3312  			     : "m" (st->preempted));
7e2175ebd695f1 David Woodhouse  2021-11-02  3313  		if (err)
7e2175ebd695f1 David Woodhouse  2021-11-02  3314  			goto out;
7e2175ebd695f1 David Woodhouse  2021-11-02  3315  
7e2175ebd695f1 David Woodhouse  2021-11-02  3316  		user_access_end();
7e2175ebd695f1 David Woodhouse  2021-11-02  3317  
7e2175ebd695f1 David Woodhouse  2021-11-02  3318  		vcpu->arch.st.preempted = 0;
af3511ff7fa210 Lai Jiangshan    2021-06-01  3319  
b382f44e98506b Wanpeng Li       2019-08-05  3320  		trace_kvm_pv_tlb_flush(vcpu->vcpu_id,
af3511ff7fa210 Lai Jiangshan    2021-06-01  3321  				       st_preempted & KVM_VCPU_FLUSH_TLB);
af3511ff7fa210 Lai Jiangshan    2021-06-01  3322  		if (st_preempted & KVM_VCPU_FLUSH_TLB)
0baedd79271306 Vitaly Kuznetsov 2020-03-25  3323  			kvm_vcpu_flush_tlb_guest(vcpu);
0b9f6c4615c993 Pan Xinhui       2016-11-02  3324  
7e2175ebd695f1 David Woodhouse  2021-11-02  3325  		if (!user_access_begin(st, sizeof(*st)))
7e2175ebd695f1 David Woodhouse  2021-11-02  3326  			goto dirty;
7e2175ebd695f1 David Woodhouse  2021-11-02  3327  	} else {
7e2175ebd695f1 David Woodhouse  2021-11-02  3328  		unsafe_put_user(0, &st->preempted, out);
a6bd811f1209fe Boris Ostrovsky  2019-12-06  3329  		vcpu->arch.st.preempted = 0;
7e2175ebd695f1 David Woodhouse  2021-11-02  3330  	}
35f3fae1784979 Wanpeng Li       2016-05-03  3331  
7e2175ebd695f1 David Woodhouse  2021-11-02  3332  	unsafe_get_user(version, &st->version, out);
7e2175ebd695f1 David Woodhouse  2021-11-02  3333  	if (version & 1)
7e2175ebd695f1 David Woodhouse  2021-11-02  3334  		version += 1;  /* first time write, random junk */
35f3fae1784979 Wanpeng Li       2016-05-03  3335  
7e2175ebd695f1 David Woodhouse  2021-11-02  3336  	version += 1;
7e2175ebd695f1 David Woodhouse  2021-11-02  3337  	unsafe_put_user(version, &st->version, out);
35f3fae1784979 Wanpeng Li       2016-05-03  3338  
35f3fae1784979 Wanpeng Li       2016-05-03  3339  	smp_wmb();
35f3fae1784979 Wanpeng Li       2016-05-03  3340  
7e2175ebd695f1 David Woodhouse  2021-11-02  3341  	unsafe_get_user(steal, &st->steal, out);
7e2175ebd695f1 David Woodhouse  2021-11-02  3342  	steal += current->sched_info.run_delay -
c54cdf141c40a5 Liang Chen       2016-03-16  3343  		vcpu->arch.st.last_steal;
c54cdf141c40a5 Liang Chen       2016-03-16  3344  	vcpu->arch.st.last_steal = current->sched_info.run_delay;
7e2175ebd695f1 David Woodhouse  2021-11-02  3345  	unsafe_put_user(steal, &st->steal, out);
35f3fae1784979 Wanpeng Li       2016-05-03  3346  
7e2175ebd695f1 David Woodhouse  2021-11-02  3347  	version += 1;
7e2175ebd695f1 David Woodhouse  2021-11-02  3348  	unsafe_put_user(version, &st->version, out);
c9aaa8957f203b Glauber Costa    2011-07-11  3349  
7e2175ebd695f1 David Woodhouse  2021-11-02  3350   out:
7e2175ebd695f1 David Woodhouse  2021-11-02  3351  	user_access_end();
7e2175ebd695f1 David Woodhouse  2021-11-02  3352   dirty:
7e2175ebd695f1 David Woodhouse  2021-11-02  3353  	mark_page_dirty_in_slot(vcpu->kvm, ghc->memslot, gpa_to_gfn(ghc->gpa));
c9aaa8957f203b Glauber Costa    2011-07-11 @3354  }
c9aaa8957f203b Glauber Costa    2011-07-11  3355  

:::::: The code at line 3354 was first introduced by commit
:::::: c9aaa8957f203bd6df83b002fb40b98390bed078 KVM: Steal time implementation

:::::: TO: Glauber Costa <glommer@redhat.com>
:::::: CC: Avi Kivity <avi@redhat.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 38690 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* arch/x86/kvm/x86.c:3354:1: error: unsupported size for integer register
@ 2021-11-14  7:17 ` kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2021-11-14  7:17 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 8804 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   c8c109546a19613d323a319d0c921cb1f317e629
commit: 7e2175ebd695f17860c5bd4ad7616cce12ed4591 KVM: x86: Fix recording of guest steal time / preempted status
date:   3 days ago
config: i386-randconfig-a004-20210930 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7e2175ebd695f17860c5bd4ad7616cce12ed4591
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 7e2175ebd695f17860c5bd4ad7616cce12ed4591
        # save the attached .config to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash arch/x86/kvm/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   arch/x86/kvm/x86.c: In function 'record_steal_time':
>> arch/x86/kvm/x86.c:3354:1: error: unsupported size for integer register
    3354 | }
         | ^


vim +3354 arch/x86/kvm/x86.c

0baedd79271306 Vitaly Kuznetsov 2020-03-25  3260  
c9aaa8957f203b Glauber Costa    2011-07-11  3261  static void record_steal_time(struct kvm_vcpu *vcpu)
c9aaa8957f203b Glauber Costa    2011-07-11  3262  {
7e2175ebd695f1 David Woodhouse  2021-11-02  3263  	struct gfn_to_hva_cache *ghc = &vcpu->arch.st.cache;
7e2175ebd695f1 David Woodhouse  2021-11-02  3264  	struct kvm_steal_time __user *st;
7e2175ebd695f1 David Woodhouse  2021-11-02  3265  	struct kvm_memslots *slots;
7e2175ebd695f1 David Woodhouse  2021-11-02  3266  	u64 steal;
7e2175ebd695f1 David Woodhouse  2021-11-02  3267  	u32 version;
b043138246a410 Boris Ostrovsky  2019-12-05  3268  
30b5c851af7991 David Woodhouse  2021-03-01  3269  	if (kvm_xen_msr_enabled(vcpu->kvm)) {
30b5c851af7991 David Woodhouse  2021-03-01  3270  		kvm_xen_runstate_set_running(vcpu);
30b5c851af7991 David Woodhouse  2021-03-01  3271  		return;
30b5c851af7991 David Woodhouse  2021-03-01  3272  	}
30b5c851af7991 David Woodhouse  2021-03-01  3273  
c9aaa8957f203b Glauber Costa    2011-07-11  3274  	if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED))
c9aaa8957f203b Glauber Costa    2011-07-11  3275  		return;
c9aaa8957f203b Glauber Costa    2011-07-11  3276  
7e2175ebd695f1 David Woodhouse  2021-11-02  3277  	if (WARN_ON_ONCE(current->mm != vcpu->kvm->mm))
c9aaa8957f203b Glauber Costa    2011-07-11  3278  		return;
c9aaa8957f203b Glauber Costa    2011-07-11  3279  
7e2175ebd695f1 David Woodhouse  2021-11-02  3280  	slots = kvm_memslots(vcpu->kvm);
7e2175ebd695f1 David Woodhouse  2021-11-02  3281  
7e2175ebd695f1 David Woodhouse  2021-11-02  3282  	if (unlikely(slots->generation != ghc->generation ||
7e2175ebd695f1 David Woodhouse  2021-11-02  3283  		     kvm_is_error_hva(ghc->hva) || !ghc->memslot)) {
7e2175ebd695f1 David Woodhouse  2021-11-02  3284  		gfn_t gfn = vcpu->arch.st.msr_val & KVM_STEAL_VALID_BITS;
7e2175ebd695f1 David Woodhouse  2021-11-02  3285  
7e2175ebd695f1 David Woodhouse  2021-11-02  3286  		/* We rely on the fact that it fits in a single page. */
7e2175ebd695f1 David Woodhouse  2021-11-02  3287  		BUILD_BUG_ON((sizeof(*st) - 1) & KVM_STEAL_VALID_BITS);
7e2175ebd695f1 David Woodhouse  2021-11-02  3288  
7e2175ebd695f1 David Woodhouse  2021-11-02  3289  		if (kvm_gfn_to_hva_cache_init(vcpu->kvm, ghc, gfn, sizeof(*st)) ||
7e2175ebd695f1 David Woodhouse  2021-11-02  3290  		    kvm_is_error_hva(ghc->hva) || !ghc->memslot)
7e2175ebd695f1 David Woodhouse  2021-11-02  3291  			return;
7e2175ebd695f1 David Woodhouse  2021-11-02  3292  	}
7e2175ebd695f1 David Woodhouse  2021-11-02  3293  
7e2175ebd695f1 David Woodhouse  2021-11-02  3294  	st = (struct kvm_steal_time __user *)ghc->hva;
7e2175ebd695f1 David Woodhouse  2021-11-02  3295  	if (!user_access_begin(st, sizeof(*st)))
7e2175ebd695f1 David Woodhouse  2021-11-02  3296  		return;
b043138246a410 Boris Ostrovsky  2019-12-05  3297  
f38a7b75267f1f Wanpeng Li       2017-12-12  3298  	/*
f38a7b75267f1f Wanpeng Li       2017-12-12  3299  	 * Doing a TLB flush here, on the guest's behalf, can avoid
f38a7b75267f1f Wanpeng Li       2017-12-12  3300  	 * expensive IPIs.
f38a7b75267f1f Wanpeng Li       2017-12-12  3301  	 */
66570e966dd9cb Oliver Upton     2020-08-18  3302  	if (guest_pv_has(vcpu, KVM_FEATURE_PV_TLB_FLUSH)) {
7e2175ebd695f1 David Woodhouse  2021-11-02  3303  		u8 st_preempted = 0;
7e2175ebd695f1 David Woodhouse  2021-11-02  3304  		int err = -EFAULT;
7e2175ebd695f1 David Woodhouse  2021-11-02  3305  
7e2175ebd695f1 David Woodhouse  2021-11-02  3306  		asm volatile("1: xchgb %0, %2\n"
7e2175ebd695f1 David Woodhouse  2021-11-02  3307  			     "xor %1, %1\n"
7e2175ebd695f1 David Woodhouse  2021-11-02  3308  			     "2:\n"
7e2175ebd695f1 David Woodhouse  2021-11-02  3309  			     _ASM_EXTABLE_UA(1b, 2b)
7e2175ebd695f1 David Woodhouse  2021-11-02  3310  			     : "+r" (st_preempted),
7e2175ebd695f1 David Woodhouse  2021-11-02  3311  			       "+&r" (err)
7e2175ebd695f1 David Woodhouse  2021-11-02  3312  			     : "m" (st->preempted));
7e2175ebd695f1 David Woodhouse  2021-11-02  3313  		if (err)
7e2175ebd695f1 David Woodhouse  2021-11-02  3314  			goto out;
7e2175ebd695f1 David Woodhouse  2021-11-02  3315  
7e2175ebd695f1 David Woodhouse  2021-11-02  3316  		user_access_end();
7e2175ebd695f1 David Woodhouse  2021-11-02  3317  
7e2175ebd695f1 David Woodhouse  2021-11-02  3318  		vcpu->arch.st.preempted = 0;
af3511ff7fa210 Lai Jiangshan    2021-06-01  3319  
b382f44e98506b Wanpeng Li       2019-08-05  3320  		trace_kvm_pv_tlb_flush(vcpu->vcpu_id,
af3511ff7fa210 Lai Jiangshan    2021-06-01  3321  				       st_preempted & KVM_VCPU_FLUSH_TLB);
af3511ff7fa210 Lai Jiangshan    2021-06-01  3322  		if (st_preempted & KVM_VCPU_FLUSH_TLB)
0baedd79271306 Vitaly Kuznetsov 2020-03-25  3323  			kvm_vcpu_flush_tlb_guest(vcpu);
0b9f6c4615c993 Pan Xinhui       2016-11-02  3324  
7e2175ebd695f1 David Woodhouse  2021-11-02  3325  		if (!user_access_begin(st, sizeof(*st)))
7e2175ebd695f1 David Woodhouse  2021-11-02  3326  			goto dirty;
7e2175ebd695f1 David Woodhouse  2021-11-02  3327  	} else {
7e2175ebd695f1 David Woodhouse  2021-11-02  3328  		unsafe_put_user(0, &st->preempted, out);
a6bd811f1209fe Boris Ostrovsky  2019-12-06  3329  		vcpu->arch.st.preempted = 0;
7e2175ebd695f1 David Woodhouse  2021-11-02  3330  	}
35f3fae1784979 Wanpeng Li       2016-05-03  3331  
7e2175ebd695f1 David Woodhouse  2021-11-02  3332  	unsafe_get_user(version, &st->version, out);
7e2175ebd695f1 David Woodhouse  2021-11-02  3333  	if (version & 1)
7e2175ebd695f1 David Woodhouse  2021-11-02  3334  		version += 1;  /* first time write, random junk */
35f3fae1784979 Wanpeng Li       2016-05-03  3335  
7e2175ebd695f1 David Woodhouse  2021-11-02  3336  	version += 1;
7e2175ebd695f1 David Woodhouse  2021-11-02  3337  	unsafe_put_user(version, &st->version, out);
35f3fae1784979 Wanpeng Li       2016-05-03  3338  
35f3fae1784979 Wanpeng Li       2016-05-03  3339  	smp_wmb();
35f3fae1784979 Wanpeng Li       2016-05-03  3340  
7e2175ebd695f1 David Woodhouse  2021-11-02  3341  	unsafe_get_user(steal, &st->steal, out);
7e2175ebd695f1 David Woodhouse  2021-11-02  3342  	steal += current->sched_info.run_delay -
c54cdf141c40a5 Liang Chen       2016-03-16  3343  		vcpu->arch.st.last_steal;
c54cdf141c40a5 Liang Chen       2016-03-16  3344  	vcpu->arch.st.last_steal = current->sched_info.run_delay;
7e2175ebd695f1 David Woodhouse  2021-11-02  3345  	unsafe_put_user(steal, &st->steal, out);
35f3fae1784979 Wanpeng Li       2016-05-03  3346  
7e2175ebd695f1 David Woodhouse  2021-11-02  3347  	version += 1;
7e2175ebd695f1 David Woodhouse  2021-11-02  3348  	unsafe_put_user(version, &st->version, out);
c9aaa8957f203b Glauber Costa    2011-07-11  3349  
7e2175ebd695f1 David Woodhouse  2021-11-02  3350   out:
7e2175ebd695f1 David Woodhouse  2021-11-02  3351  	user_access_end();
7e2175ebd695f1 David Woodhouse  2021-11-02  3352   dirty:
7e2175ebd695f1 David Woodhouse  2021-11-02  3353  	mark_page_dirty_in_slot(vcpu->kvm, ghc->memslot, gpa_to_gfn(ghc->gpa));
c9aaa8957f203b Glauber Costa    2011-07-11 @3354  }
c9aaa8957f203b Glauber Costa    2011-07-11  3355  

:::::: The code at line 3354 was first introduced by commit
:::::: c9aaa8957f203bd6df83b002fb40b98390bed078 KVM: Steal time implementation

:::::: TO: Glauber Costa <glommer@redhat.com>
:::::: CC: Avi Kivity <avi@redhat.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38690 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] KVM: Fix steal time asm constraints in 32-bit mode
  2021-11-14  7:17 ` kernel test robot
@ 2021-11-14  8:59   ` David Woodhouse
  -1 siblings, 0 replies; 6+ messages in thread
From: David Woodhouse @ 2021-11-14  8:59 UTC (permalink / raw)
  To: kernel test robot, kvm
  Cc: kbuild-all, linux-kernel, Paolo Bonzini, Boris Ostrovsky,
	Joao Martins, jmattson, wanpengli, seanjc, vkuznets, mtosatti,
	joro, karahmed

[-- Attachment #1: Type: text/plain, Size: 1016 bytes --]

From: David Woodhouse <dwmw@amazon.co.uk>

In 64-bit mode, x86 instruction encoding allows us to use the low 8 bits
of any GPR as an 8-bit operand. In 32-bit mode, however, we can only use
the [abcd] registers. For which, GCC has the "q" constraint instead of
the less restrictive "r".

Fixes: 7e2175ebd695 ("KVM: x86: Fix recording of guest steal time / preempted status")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 8f156905ae38..0a689bb62e9e 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3307,7 +3307,7 @@ static void record_steal_time(struct kvm_vcpu *vcpu)
 			     "xor %1, %1\n"
 			     "2:\n"
 			     _ASM_EXTABLE_UA(1b, 2b)
-			     : "+r" (st_preempted),
+			     : "+q" (st_preempted),
 			       "+&r" (err)
 			     : "m" (st->preempted));
 		if (err)
-- 
2.25.1


[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5174 bytes --]

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] KVM: Fix steal time asm constraints in 32-bit mode
@ 2021-11-14  8:59   ` David Woodhouse
  0 siblings, 0 replies; 6+ messages in thread
From: David Woodhouse @ 2021-11-14  8:59 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1016 bytes --]

From: David Woodhouse <dwmw@amazon.co.uk>

In 64-bit mode, x86 instruction encoding allows us to use the low 8 bits
of any GPR as an 8-bit operand. In 32-bit mode, however, we can only use
the [abcd] registers. For which, GCC has the "q" constraint instead of
the less restrictive "r".

Fixes: 7e2175ebd695 ("KVM: x86: Fix recording of guest steal time / preempted status")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 arch/x86/kvm/x86.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 8f156905ae38..0a689bb62e9e 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3307,7 +3307,7 @@ static void record_steal_time(struct kvm_vcpu *vcpu)
 			     "xor %1, %1\n"
 			     "2:\n"
 			     _ASM_EXTABLE_UA(1b, 2b)
-			     : "+r" (st_preempted),
+			     : "+q" (st_preempted),
 			       "+&r" (err)
 			     : "m" (st->preempted));
 		if (err)
-- 
2.25.1


[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5174 bytes --]

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] KVM: Fix steal time asm constraints in 32-bit mode
  2021-11-14  8:59   ` David Woodhouse
@ 2021-11-16  9:46     ` Paolo Bonzini
  -1 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2021-11-16  9:46 UTC (permalink / raw)
  To: David Woodhouse, kernel test robot, kvm
  Cc: kbuild-all, linux-kernel, Boris Ostrovsky, Joao Martins,
	jmattson, wanpengli, seanjc, vkuznets, mtosatti, joro, karahmed

On 11/14/21 09:59, David Woodhouse wrote:
> From: David Woodhouse <dwmw@amazon.co.uk>
> 
> In 64-bit mode, x86 instruction encoding allows us to use the low 8 bits
> of any GPR as an 8-bit operand. In 32-bit mode, however, we can only use
> the [abcd] registers. For which, GCC has the "q" constraint instead of
> the less restrictive "r".
> 
> Fixes: 7e2175ebd695 ("KVM: x86: Fix recording of guest steal time / preempted status")
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> ---
>   arch/x86/kvm/x86.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 8f156905ae38..0a689bb62e9e 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -3307,7 +3307,7 @@ static void record_steal_time(struct kvm_vcpu *vcpu)
>   			     "xor %1, %1\n"
>   			     "2:\n"
>   			     _ASM_EXTABLE_UA(1b, 2b)
> -			     : "+r" (st_preempted),
> +			     : "+q" (st_preempted),
>   			       "+&r" (err)
>   			     : "m" (st->preempted));
>   		if (err)
> 

Queued with the addition of the "m" -> "+m" change, thanks.

Paolo


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] KVM: Fix steal time asm constraints in 32-bit mode
@ 2021-11-16  9:46     ` Paolo Bonzini
  0 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2021-11-16  9:46 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1182 bytes --]

On 11/14/21 09:59, David Woodhouse wrote:
> From: David Woodhouse <dwmw@amazon.co.uk>
> 
> In 64-bit mode, x86 instruction encoding allows us to use the low 8 bits
> of any GPR as an 8-bit operand. In 32-bit mode, however, we can only use
> the [abcd] registers. For which, GCC has the "q" constraint instead of
> the less restrictive "r".
> 
> Fixes: 7e2175ebd695 ("KVM: x86: Fix recording of guest steal time / preempted status")
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> ---
>   arch/x86/kvm/x86.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 8f156905ae38..0a689bb62e9e 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -3307,7 +3307,7 @@ static void record_steal_time(struct kvm_vcpu *vcpu)
>   			     "xor %1, %1\n"
>   			     "2:\n"
>   			     _ASM_EXTABLE_UA(1b, 2b)
> -			     : "+r" (st_preempted),
> +			     : "+q" (st_preempted),
>   			       "+&r" (err)
>   			     : "m" (st->preempted));
>   		if (err)
> 

Queued with the addition of the "m" -> "+m" change, thanks.

Paolo

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-11-16  9:46 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-14  7:17 arch/x86/kvm/x86.c:3354:1: error: unsupported size for integer register kernel test robot
2021-11-14  7:17 ` kernel test robot
2021-11-14  8:59 ` [PATCH] KVM: Fix steal time asm constraints in 32-bit mode David Woodhouse
2021-11-14  8:59   ` David Woodhouse
2021-11-16  9:46   ` Paolo Bonzini
2021-11-16  9:46     ` Paolo Bonzini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.