All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mario Smarduch <m.smarduch@samsung.com>
To: kvm-ia64@vger.kernel.org
Subject: Re: [PATCH v13 2/7] KVM: Add generic support for dirty page logging
Date: Fri, 07 Nov 2014 18:55:15 +0000	[thread overview]
Message-ID: <545D1593.7030604@samsung.com> (raw)
In-Reply-To: <1415320848-13813-3-git-send-email-m.smarduch@samsung.com>

On 11/07/2014 01:07 AM, Cornelia Huck wrote:
> On Thu, 06 Nov 2014 16:40:43 -0800
> Mario Smarduch <m.smarduch@samsung.com> wrote:
> 
>> kvm_get_dirty_log() provides generic handling of dirty bitmap, currently reused
>> by several architectures. Building on that we intrdoduce 
>> kvm_get_dirty_log_protect() adding write protection to mark these pages dirty
>> for future write access, before next KVM_GET_DIRTY_LOG ioctl call from user
>> space.
>>
>> Signed-off-by: Mario Smarduch <m.smarduch@samsung.com>
>> ---
>>  include/linux/kvm_host.h |    9 +++++
>>  virt/kvm/kvm_main.c      |   95 ++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 104 insertions(+)
>>
> 
>> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
>> index 887df87..f017760 100644
>> --- a/virt/kvm/kvm_main.c
>> +++ b/virt/kvm/kvm_main.c
>> @@ -981,6 +981,101 @@ out:
>>  }
>>  EXPORT_SYMBOL_GPL(kvm_get_dirty_log);
>>
>> +#if defined(CONFIG_S390) || defined(CONFIG_PPC) || defined(CONFIG_MIPS) || \
>> +    defined(CONFIG_IA64) || defined(CONFIG_X86) || defined(CONFIG_ARM) || \
>> +    defined(CONFIG_ARM64)
> 
> Does this deserve a config symbol that can be selected by architectures
> actually using kvm_get_dirty_log_protect()? I.e.,
> 
> #ifndef CONFIG_KVM_ARCH_DIRTY_LOG_PROTECT
> 
> or so?

Yes definitely, not sure why I went this way after using Kconfig
defines before.

> 
>> +/*
>> + * For architectures that don't use kvm_get_dirty_log_protect() for dirty page
>> + * logging, calling this function is illegal. Otherwise the function is defined
>> + * in arch subtree and this restriction is removed.
>> + */
> 
> What about
> 
> /*
>  * For architectures that don't use kvm_get_dirty_log_protect() for dirty page
>  * logging, we must never end up calling this function. Architectures that do
>  * use it define their own version of this function.
>  */
> 
> instead

Yeah that reads better, getting the illegal out of there.
> 
>> +void kvm_arch_mmu_write_protect_pt_masked(struct kvm *kvm,
>> +					struct kvm_memory_slot *slot,
>> +					gfn_t gfn_offset,
>> +					unsigned long mask)
>> +{
>> +	BUG();
>> +}
>> +#endif
>> +
> (...)
> 


WARNING: multiple messages have this Message-ID (diff)
From: Mario Smarduch <m.smarduch@samsung.com>
To: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: pbonzini@redhat.com, james.hogan@imgtec.com,
	christoffer.dall@linaro.org, agraf@suse.de, marc.zyngier@arm.com,
	borntraeger@de.ibm.com, catalin.marinas@arm.com,
	kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
	kvm-ppc@vger.kernel.org, kvm-ia64@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, steve.capper@arm.com,
	peter.maydell@linaro.org
Subject: Re: [PATCH v13 2/7] KVM: Add generic support for dirty page logging
Date: Fri, 07 Nov 2014 18:55:15 +0000	[thread overview]
Message-ID: <545D1593.7030604@samsung.com> (raw)
In-Reply-To: <20141107100721.44c34175.cornelia.huck@de.ibm.com>

On 11/07/2014 01:07 AM, Cornelia Huck wrote:
> On Thu, 06 Nov 2014 16:40:43 -0800
> Mario Smarduch <m.smarduch@samsung.com> wrote:
> 
>> kvm_get_dirty_log() provides generic handling of dirty bitmap, currently reused
>> by several architectures. Building on that we intrdoduce 
>> kvm_get_dirty_log_protect() adding write protection to mark these pages dirty
>> for future write access, before next KVM_GET_DIRTY_LOG ioctl call from user
>> space.
>>
>> Signed-off-by: Mario Smarduch <m.smarduch@samsung.com>
>> ---
>>  include/linux/kvm_host.h |    9 +++++
>>  virt/kvm/kvm_main.c      |   95 ++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 104 insertions(+)
>>
> 
>> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
>> index 887df87..f017760 100644
>> --- a/virt/kvm/kvm_main.c
>> +++ b/virt/kvm/kvm_main.c
>> @@ -981,6 +981,101 @@ out:
>>  }
>>  EXPORT_SYMBOL_GPL(kvm_get_dirty_log);
>>
>> +#if defined(CONFIG_S390) || defined(CONFIG_PPC) || defined(CONFIG_MIPS) || \
>> +    defined(CONFIG_IA64) || defined(CONFIG_X86) || defined(CONFIG_ARM) || \
>> +    defined(CONFIG_ARM64)
> 
> Does this deserve a config symbol that can be selected by architectures
> actually using kvm_get_dirty_log_protect()? I.e.,
> 
> #ifndef CONFIG_KVM_ARCH_DIRTY_LOG_PROTECT
> 
> or so?

Yes definitely, not sure why I went this way after using Kconfig
defines before.

> 
>> +/*
>> + * For architectures that don't use kvm_get_dirty_log_protect() for dirty page
>> + * logging, calling this function is illegal. Otherwise the function is defined
>> + * in arch subtree and this restriction is removed.
>> + */
> 
> What about
> 
> /*
>  * For architectures that don't use kvm_get_dirty_log_protect() for dirty page
>  * logging, we must never end up calling this function. Architectures that do
>  * use it define their own version of this function.
>  */
> 
> instead

Yeah that reads better, getting the illegal out of there.
> 
>> +void kvm_arch_mmu_write_protect_pt_masked(struct kvm *kvm,
>> +					struct kvm_memory_slot *slot,
>> +					gfn_t gfn_offset,
>> +					unsigned long mask)
>> +{
>> +	BUG();
>> +}
>> +#endif
>> +
> (...)
> 


WARNING: multiple messages have this Message-ID (diff)
From: m.smarduch@samsung.com (Mario Smarduch)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v13 2/7] KVM: Add generic support for dirty page logging
Date: Fri, 07 Nov 2014 10:55:15 -0800	[thread overview]
Message-ID: <545D1593.7030604@samsung.com> (raw)
In-Reply-To: <20141107100721.44c34175.cornelia.huck@de.ibm.com>

On 11/07/2014 01:07 AM, Cornelia Huck wrote:
> On Thu, 06 Nov 2014 16:40:43 -0800
> Mario Smarduch <m.smarduch@samsung.com> wrote:
> 
>> kvm_get_dirty_log() provides generic handling of dirty bitmap, currently reused
>> by several architectures. Building on that we intrdoduce 
>> kvm_get_dirty_log_protect() adding write protection to mark these pages dirty
>> for future write access, before next KVM_GET_DIRTY_LOG ioctl call from user
>> space.
>>
>> Signed-off-by: Mario Smarduch <m.smarduch@samsung.com>
>> ---
>>  include/linux/kvm_host.h |    9 +++++
>>  virt/kvm/kvm_main.c      |   95 ++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 104 insertions(+)
>>
> 
>> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
>> index 887df87..f017760 100644
>> --- a/virt/kvm/kvm_main.c
>> +++ b/virt/kvm/kvm_main.c
>> @@ -981,6 +981,101 @@ out:
>>  }
>>  EXPORT_SYMBOL_GPL(kvm_get_dirty_log);
>>
>> +#if defined(CONFIG_S390) || defined(CONFIG_PPC) || defined(CONFIG_MIPS) || \
>> +    defined(CONFIG_IA64) || defined(CONFIG_X86) || defined(CONFIG_ARM) || \
>> +    defined(CONFIG_ARM64)
> 
> Does this deserve a config symbol that can be selected by architectures
> actually using kvm_get_dirty_log_protect()? I.e.,
> 
> #ifndef CONFIG_KVM_ARCH_DIRTY_LOG_PROTECT
> 
> or so?

Yes definitely, not sure why I went this way after using Kconfig
defines before.

> 
>> +/*
>> + * For architectures that don't use kvm_get_dirty_log_protect() for dirty page
>> + * logging, calling this function is illegal. Otherwise the function is defined
>> + * in arch subtree and this restriction is removed.
>> + */
> 
> What about
> 
> /*
>  * For architectures that don't use kvm_get_dirty_log_protect() for dirty page
>  * logging, we must never end up calling this function. Architectures that do
>  * use it define their own version of this function.
>  */
> 
> instead

Yeah that reads better, getting the illegal out of there.
> 
>> +void kvm_arch_mmu_write_protect_pt_masked(struct kvm *kvm,
>> +					struct kvm_memory_slot *slot,
>> +					gfn_t gfn_offset,
>> +					unsigned long mask)
>> +{
>> +	BUG();
>> +}
>> +#endif
>> +
> (...)
> 

WARNING: multiple messages have this Message-ID (diff)
From: Mario Smarduch <m.smarduch@samsung.com>
To: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: pbonzini@redhat.com, james.hogan@imgtec.com,
	christoffer.dall@linaro.org, agraf@suse.de, marc.zyngier@arm.com,
	borntraeger@de.ibm.com, catalin.marinas@arm.com,
	kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
	kvm-ppc@vger.kernel.org, kvm-ia64@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, steve.capper@arm.com,
	peter.maydell@linaro.org
Subject: Re: [PATCH v13 2/7] KVM: Add generic support for dirty page logging
Date: Fri, 07 Nov 2014 10:55:15 -0800	[thread overview]
Message-ID: <545D1593.7030604@samsung.com> (raw)
In-Reply-To: <20141107100721.44c34175.cornelia.huck@de.ibm.com>

On 11/07/2014 01:07 AM, Cornelia Huck wrote:
> On Thu, 06 Nov 2014 16:40:43 -0800
> Mario Smarduch <m.smarduch@samsung.com> wrote:
> 
>> kvm_get_dirty_log() provides generic handling of dirty bitmap, currently reused
>> by several architectures. Building on that we intrdoduce 
>> kvm_get_dirty_log_protect() adding write protection to mark these pages dirty
>> for future write access, before next KVM_GET_DIRTY_LOG ioctl call from user
>> space.
>>
>> Signed-off-by: Mario Smarduch <m.smarduch@samsung.com>
>> ---
>>  include/linux/kvm_host.h |    9 +++++
>>  virt/kvm/kvm_main.c      |   95 ++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 104 insertions(+)
>>
> 
>> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
>> index 887df87..f017760 100644
>> --- a/virt/kvm/kvm_main.c
>> +++ b/virt/kvm/kvm_main.c
>> @@ -981,6 +981,101 @@ out:
>>  }
>>  EXPORT_SYMBOL_GPL(kvm_get_dirty_log);
>>
>> +#if defined(CONFIG_S390) || defined(CONFIG_PPC) || defined(CONFIG_MIPS) || \
>> +    defined(CONFIG_IA64) || defined(CONFIG_X86) || defined(CONFIG_ARM) || \
>> +    defined(CONFIG_ARM64)
> 
> Does this deserve a config symbol that can be selected by architectures
> actually using kvm_get_dirty_log_protect()? I.e.,
> 
> #ifndef CONFIG_KVM_ARCH_DIRTY_LOG_PROTECT
> 
> or so?

Yes definitely, not sure why I went this way after using Kconfig
defines before.

> 
>> +/*
>> + * For architectures that don't use kvm_get_dirty_log_protect() for dirty page
>> + * logging, calling this function is illegal. Otherwise the function is defined
>> + * in arch subtree and this restriction is removed.
>> + */
> 
> What about
> 
> /*
>  * For architectures that don't use kvm_get_dirty_log_protect() for dirty page
>  * logging, we must never end up calling this function. Architectures that do
>  * use it define their own version of this function.
>  */
> 
> instead

Yeah that reads better, getting the illegal out of there.
> 
>> +void kvm_arch_mmu_write_protect_pt_masked(struct kvm *kvm,
>> +					struct kvm_memory_slot *slot,
>> +					gfn_t gfn_offset,
>> +					unsigned long mask)
>> +{
>> +	BUG();
>> +}
>> +#endif
>> +
> (...)
> 

  parent reply	other threads:[~2014-11-07 18:55 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-07  0:40 [PATCH v13 2/7] KVM: Add generic support for dirty page logging Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  9:07 ` Cornelia Huck
2014-11-07  9:07   ` Cornelia Huck
2014-11-07  9:07   ` Cornelia Huck
2014-11-07  9:07   ` Cornelia Huck
2014-11-07  9:26 ` Paolo Bonzini
2014-11-07  9:26   ` Paolo Bonzini
2014-11-07  9:26   ` Paolo Bonzini
2014-11-07  9:26   ` Paolo Bonzini
2014-11-07 18:55 ` Mario Smarduch [this message]
2014-11-07 18:55   ` Mario Smarduch
2014-11-07 18:55   ` Mario Smarduch
2014-11-07 18:55   ` Mario Smarduch
  -- strict thread matches above, loose matches on Subject: below --
2014-11-07  0:40 [PATCH v13 7/7] arm: KVM: ARMv7 dirty page logging 2nd stage page fault Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07 10:33 ` Marc Zyngier
2014-11-07 10:33   ` Marc Zyngier
2014-11-07 10:33   ` Marc Zyngier
2014-11-07 10:33   ` Marc Zyngier
2014-11-07 19:21 ` Mario Smarduch
2014-11-07 19:21   ` Mario Smarduch
2014-11-07 19:21   ` Mario Smarduch
2014-11-07 19:21   ` Mario Smarduch
2014-11-07  0:40 [PATCH v13 6/7] arm: KVM: dirty log read write protect support Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  7:38 ` Paolo Bonzini
2014-11-07  7:38   ` Paolo Bonzini
2014-11-07  7:38   ` Paolo Bonzini
2014-11-07  7:38   ` Paolo Bonzini
2014-11-07 10:19 ` Marc Zyngier
2014-11-07 10:19   ` Marc Zyngier
2014-11-07 10:19   ` Marc Zyngier
2014-11-07 19:47 ` Mario Smarduch
2014-11-07 19:47   ` Mario Smarduch
2014-11-07 19:47   ` Mario Smarduch
2014-11-07 19:47   ` Mario Smarduch
2014-11-08  7:28 ` Paolo Bonzini
2014-11-08  7:28   ` Paolo Bonzini
2014-11-08  7:28   ` Paolo Bonzini
2014-11-08  7:28   ` Paolo Bonzini
2014-11-07  0:40 [PATCH v13 5/7] arm: KVM: Add initial dirty page locking infrastructure Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07 10:15 ` Marc Zyngier
2014-11-07 10:15   ` Marc Zyngier
2014-11-07 10:15   ` Marc Zyngier
2014-11-07 10:15   ` Marc Zyngier
2014-11-07 19:07 ` Mario Smarduch
2014-11-07 19:07   ` Mario Smarduch
2014-11-07 19:07   ` Mario Smarduch
2014-11-07 19:07   ` Mario Smarduch
2014-11-07  0:40 [PATCH v13 4/7] arm: KVM: Add ARMv7 API to flush TLBs Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  9:44 ` Marc Zyngier
2014-11-07  9:44   ` Marc Zyngier
2014-11-07  9:44   ` Marc Zyngier
2014-11-07 18:58 ` Mario Smarduch
2014-11-07 18:58   ` Mario Smarduch
2014-11-07 18:58   ` Mario Smarduch
2014-11-07 18:58   ` Mario Smarduch
2014-11-07 20:18 ` Christoffer Dall
2014-11-07 20:18   ` Christoffer Dall
2014-11-07 20:18   ` Christoffer Dall
2014-11-07 20:18   ` Christoffer Dall
2014-11-07 20:46 ` Mario Smarduch
2014-11-07 20:46   ` Mario Smarduch
2014-11-07 20:46   ` Mario Smarduch
2014-11-07 20:46   ` Mario Smarduch
2014-11-07  0:40 [PATCH v13 3/7] KVM: x86: flush TLBs last before returning from KVM_GET_DIRTY_LOG Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  7:44 ` Paolo Bonzini
2014-11-07  7:44   ` Paolo Bonzini
2014-11-07  7:44   ` Paolo Bonzini
2014-11-07  7:44   ` Paolo Bonzini
2014-11-07 19:50 ` Mario Smarduch
2014-11-07 19:50   ` Mario Smarduch
2014-11-07 19:50   ` Mario Smarduch
2014-11-07 19:50   ` Mario Smarduch
2014-11-07 20:02 ` Christoffer Dall
2014-11-07 20:02   ` Christoffer Dall
2014-11-07 20:02   ` Christoffer Dall
2014-11-07 20:02   ` Christoffer Dall
2014-11-07 20:44 ` Mario Smarduch
2014-11-07 20:44   ` Mario Smarduch
2014-11-07 20:44   ` Mario Smarduch
2014-11-07 20:44   ` Mario Smarduch
2014-11-07 21:07 ` Christoffer Dall
2014-11-07 21:07   ` Christoffer Dall
2014-11-07 21:07   ` Christoffer Dall
2014-11-07 21:07   ` Christoffer Dall
2014-11-07  0:40 [PATCH v13 1/7] KVM: Add architecture-defined TLB flush support Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  9:39 ` Marc Zyngier
2014-11-07  9:39   ` Marc Zyngier
2014-11-07  9:39   ` Marc Zyngier
2014-11-07  0:40 [PATCH v13 0/7] KVM/arm/x86: dirty page logging support for ARMv7 (3.17.0-rc1) Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch
2014-11-07  0:40 ` Mario Smarduch

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=545D1593.7030604@samsung.com \
    --to=m.smarduch@samsung.com \
    --cc=kvm-ia64@vger.kernel.org \
    /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.