All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <sean.j.christopherson@intel.com>
To: Peter Xu <peterx@redhat.com>
Cc: kbuild test robot <lkp@intel.com>,
	kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	kvm@vger.kernel.org, Yan Zhao <yan.y.zhao@intel.com>,
	Jason Wang <jasowang@redhat.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
	Christophe de Dinechin <dinechin@redhat.com>,
	"Michael S . Tsirkin" <mst@redhat.com>,
	Kevin Tian <kevin.tian@intel.com>,
	Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [PATCH v6 03/14] KVM: X86: Don't track dirty for KVM_SET_[TSS_ADDR|IDENTITY_MAP_ADDR]
Date: Wed, 11 Mar 2020 10:09:40 -0700	[thread overview]
Message-ID: <20200311170940.GH21852@linux.intel.com> (raw)
In-Reply-To: <20200311163906.GG479302@xz-x1>

On Wed, Mar 11, 2020 at 12:39:06PM -0400, Peter Xu wrote:
> On Wed, Mar 11, 2020 at 09:10:04AM +0800, kbuild test robot wrote:
> > Hi Peter,
> > 
> > Thank you for the patch! Perhaps something to improve:
> > 
> > [auto build test WARNING on tip/auto-latest]
> > [also build test WARNING on vhost/linux-next linus/master v5.6-rc5 next-20200310]
> > [cannot apply to kvm/linux-next linux/master]
> > [if your patch is applied to the wrong git tree, please drop us a note to help
> > improve the system. BTW, we also suggest to use '--base' option to specify the
> > base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
> > 
> > url:    https://github.com/0day-ci/linux/commits/Peter-Xu/KVM-Dirty-ring-interface/20200310-070637
> > base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 12481c76713078054f2d043b3ce946e4814ac29f
> > reproduce:
> >         # apt-get install sparse
> >         # sparse version: v0.6.1-174-g094d5a94-dirty
> >         make ARCH=x86_64 allmodconfig
> >         make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
> > 
> > If you fix the issue, kindly add following tag
> > Reported-by: kbuild test robot <lkp@intel.com>
> > 
> > 
> > sparse warnings: (new ones prefixed by >>)
> > 
> >    arch/x86/kvm/x86.c:2599:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const [noderef] <asn:1> * @@    got  const [noderef] <asn:1> * @@
> >    arch/x86/kvm/x86.c:2599:38: sparse:    expected void const [noderef] <asn:1> *
> >    arch/x86/kvm/x86.c:2599:38: sparse:    got unsigned char [usertype] *
> >    arch/x86/kvm/x86.c:7501:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
> >    arch/x86/kvm/x86.c:7501:15: sparse:    struct kvm_apic_map [noderef] <asn:4> *
> >    arch/x86/kvm/x86.c:7501:15: sparse:    struct kvm_apic_map *
> > >> arch/x86/kvm/x86.c:9794:31: sparse: sparse: incorrect type in return expression (different address spaces) @@    expected void [noderef] <asn:1> * @@    got n:1> * @@
> 
> I'm not sure on how I can reproduce this locally, and also I'm not
> very sure I understand this warning.  I'd be glad to know if anyone
> knows...
> 
> If without further hints, I'll try to remove the __user for
> __x86_set_memory_region() and use a cast on the callers next.

Ah, it's complaining that the ERR_PTR() returns in __x86_set_memory_region()
aren't explicitly casting to a __user pointer.

Part of me wonders if something along the lines of your original approach
of keeping the "int" return and passing a "void __user **p_hva" would be
cleaner overall, as opposed to having to cast everywhere.  The diff would
certainly be smaller.  E.g.

int __x86_set_memory_region(struct kvm *kvm, int id, gpa_t gpa, u32 size,
			    void __user **p_hva)
{
	...

	if (p_hva)
		*p_hva = (void __user *)hva;

        return 0;
}

WARNING: multiple messages have this Message-ID (diff)
From: Sean Christopherson <sean.j.christopherson@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v6 03/14] KVM: X86: Don't track dirty for KVM_SET_[TSS_ADDR|IDENTITY_MAP_ADDR]
Date: Wed, 11 Mar 2020 10:09:40 -0700	[thread overview]
Message-ID: <20200311170940.GH21852@linux.intel.com> (raw)
In-Reply-To: <20200311163906.GG479302@xz-x1>

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

On Wed, Mar 11, 2020 at 12:39:06PM -0400, Peter Xu wrote:
> On Wed, Mar 11, 2020 at 09:10:04AM +0800, kbuild test robot wrote:
> > Hi Peter,
> > 
> > Thank you for the patch! Perhaps something to improve:
> > 
> > [auto build test WARNING on tip/auto-latest]
> > [also build test WARNING on vhost/linux-next linus/master v5.6-rc5 next-20200310]
> > [cannot apply to kvm/linux-next linux/master]
> > [if your patch is applied to the wrong git tree, please drop us a note to help
> > improve the system. BTW, we also suggest to use '--base' option to specify the
> > base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
> > 
> > url:    https://github.com/0day-ci/linux/commits/Peter-Xu/KVM-Dirty-ring-interface/20200310-070637
> > base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 12481c76713078054f2d043b3ce946e4814ac29f
> > reproduce:
> >         # apt-get install sparse
> >         # sparse version: v0.6.1-174-g094d5a94-dirty
> >         make ARCH=x86_64 allmodconfig
> >         make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
> > 
> > If you fix the issue, kindly add following tag
> > Reported-by: kbuild test robot <lkp@intel.com>
> > 
> > 
> > sparse warnings: (new ones prefixed by >>)
> > 
> >    arch/x86/kvm/x86.c:2599:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const [noderef] <asn:1> * @@    got  const [noderef] <asn:1> * @@
> >    arch/x86/kvm/x86.c:2599:38: sparse:    expected void const [noderef] <asn:1> *
> >    arch/x86/kvm/x86.c:2599:38: sparse:    got unsigned char [usertype] *
> >    arch/x86/kvm/x86.c:7501:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
> >    arch/x86/kvm/x86.c:7501:15: sparse:    struct kvm_apic_map [noderef] <asn:4> *
> >    arch/x86/kvm/x86.c:7501:15: sparse:    struct kvm_apic_map *
> > >> arch/x86/kvm/x86.c:9794:31: sparse: sparse: incorrect type in return expression (different address spaces) @@    expected void [noderef] <asn:1> * @@    got n:1> * @@
> 
> I'm not sure on how I can reproduce this locally, and also I'm not
> very sure I understand this warning.  I'd be glad to know if anyone
> knows...
> 
> If without further hints, I'll try to remove the __user for
> __x86_set_memory_region() and use a cast on the callers next.

Ah, it's complaining that the ERR_PTR() returns in __x86_set_memory_region()
aren't explicitly casting to a __user pointer.

Part of me wonders if something along the lines of your original approach
of keeping the "int" return and passing a "void __user **p_hva" would be
cleaner overall, as opposed to having to cast everywhere.  The diff would
certainly be smaller.  E.g.

int __x86_set_memory_region(struct kvm *kvm, int id, gpa_t gpa, u32 size,
			    void __user **p_hva)
{
	...

	if (p_hva)
		*p_hva = (void __user *)hva;

        return 0;
}

  reply	other threads:[~2020-03-11 17:09 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-09 21:44 [PATCH v6 00/14] KVM: Dirty ring interface Peter Xu
2020-03-09 21:44 ` [PATCH v6 01/14] KVM: X86: Change parameter for fast_page_fault tracepoint Peter Xu
2020-03-09 21:44 ` [PATCH v6 02/14] KVM: Cache as_id in kvm_memory_slot Peter Xu
2020-03-10 14:48   ` Sean Christopherson
2020-03-11 15:48     ` Peter Xu
2020-03-09 21:44 ` [PATCH v6 03/14] KVM: X86: Don't track dirty for KVM_SET_[TSS_ADDR|IDENTITY_MAP_ADDR] Peter Xu
2020-03-10 15:06   ` Sean Christopherson
2020-03-11 16:01     ` Peter Xu
2020-03-11 16:11       ` Sean Christopherson
2020-03-11  1:10   ` kbuild test robot
2020-03-11  1:10     ` kbuild test robot
2020-03-11 16:39     ` Peter Xu
2020-03-11 16:39       ` Peter Xu
2020-03-11 17:09       ` Sean Christopherson [this message]
2020-03-11 17:09         ` Sean Christopherson
2020-03-18 20:04         ` Peter Xu
2020-03-18 20:04           ` Peter Xu
2020-03-09 21:44 ` [PATCH v6 04/14] KVM: Pass in kvm pointer into mark_page_dirty_in_slot() Peter Xu
2020-03-09 21:44 ` [PATCH v6 05/14] KVM: X86: Implement ring-based dirty memory tracking Peter Xu
2020-03-09 22:24 ` [PATCH v6 06/14] KVM: Make dirty ring exclusive to dirty bitmap log Peter Xu
2020-03-09 22:25 ` [PATCH v6 07/14] KVM: Don't allocate dirty bitmap if dirty ring is enabled Peter Xu
2020-03-09 22:25 ` [PATCH v6 08/14] KVM: selftests: Always clear dirty bitmap after iteration Peter Xu
2020-03-09 22:25 ` [PATCH v6 09/14] KVM: selftests: Sync uapi/linux/kvm.h to tools/ Peter Xu
2020-03-09 22:25 ` [PATCH v6 10/14] KVM: selftests: Use a single binary for dirty/clear log test Peter Xu
2020-03-10  8:10   ` Andrew Jones
2020-03-11 17:43     ` Peter Xu
2020-03-11 18:47       ` Andrew Jones
2020-03-09 22:25 ` [PATCH v6 11/14] KVM: selftests: Introduce after_vcpu_run hook for dirty " Peter Xu
2020-03-09 22:25 ` [PATCH v6 12/14] KVM: selftests: Add dirty ring buffer test Peter Xu
2020-03-10  8:18   ` Andrew Jones
2020-03-11 17:44     ` Peter Xu
2020-03-09 22:25 ` [PATCH v6 13/14] KVM: selftests: Let dirty_log_test async for dirty ring test Peter Xu
2020-03-10  8:27   ` Andrew Jones
2020-03-11 17:45     ` Peter Xu
2020-03-09 22:25 ` [PATCH v6 14/14] KVM: selftests: Add "-c" parameter to dirty log test Peter Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200311170940.GH21852@linux.intel.com \
    --to=sean.j.christopherson@intel.com \
    --cc=alex.williamson@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=dinechin@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=vkuznets@redhat.com \
    --cc=yan.y.zhao@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.