From: Anthony Liguori <anthony@codemonkey.ws>
To: Avi Kivity <avi@redhat.com>
Cc: Blue Swirl <blauwirbel@gmail.com>, qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PULL] Memory core regression fixes
Date: Mon, 19 Mar 2012 13:12:30 -0500 [thread overview]
Message-ID: <4F67770E.8040107@codemonkey.ws> (raw)
In-Reply-To: <4F66FF17.90303@redhat.com>
On 03/19/2012 04:40 AM, Avi Kivity wrote:
> The last memory core pull introduced a couple of regressions; here are
> the fixes.
>
> Please pull from:
>
> git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git memory/urgent
Pulled this specific commit. Will handle the next commit next. Thanks.
Regards,
Anthony Liguori
>
> ----------------------------------------------------------------
> Avi Kivity (2):
> exec: fix write tlb entry misused as iotlb
> memory: check for watchpoints when getting code ram_addr
>
> exec.c | 14 ++++++++++----
> 1 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index be392e2..a3818ff 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -2031,14 +2031,19 @@ static void tlb_unprotect_code_phys(CPUArchState
> *env, ram_addr_t ram_addr,
> cpu_physical_memory_set_dirty_flags(ram_addr, CODE_DIRTY_FLAG);
> }
>
> +static bool tlb_is_dirty_ram(CPUTLBEntry *tlbe)
> +{
> + return (tlbe->addr_write&
> (TLB_INVALID_MASK|TLB_MMIO|TLB_NOTDIRTY)) == 0;
> +}
> +
> static inline void tlb_reset_dirty_range(CPUTLBEntry *tlb_entry,
> unsigned long start, unsigned
> long length)
> {
> unsigned long addr;
> - if ((tlb_entry->addr_write& ~TARGET_PAGE_MASK) ==
> io_mem_ram.ram_addr) {
> + if (tlb_is_dirty_ram(tlb_entry)) {
> addr = (tlb_entry->addr_write& TARGET_PAGE_MASK) +
> tlb_entry->addend;
> if ((addr - start)< length) {
> - tlb_entry->addr_write = (tlb_entry->addr_write&
> TARGET_PAGE_MASK) | TLB_NOTDIRTY;
> + tlb_entry->addr_write |= TLB_NOTDIRTY;
> }
> }
> }
> @@ -2091,7 +2096,7 @@ static inline void tlb_update_dirty(CPUTLBEntry
> *tlb_entry)
> ram_addr_t ram_addr;
> void *p;
>
> - if ((tlb_entry->addr_write& ~TARGET_PAGE_MASK) ==
> io_mem_ram.ram_addr) {
> + if (tlb_is_dirty_ram(tlb_entry)) {
> p = (void *)(unsigned long)((tlb_entry->addr_write&
> TARGET_PAGE_MASK)
> + tlb_entry->addend);
> ram_addr = qemu_ram_addr_from_host_nofail(p);
> @@ -4604,7 +4609,8 @@ tb_page_addr_t get_page_addr_code(CPUArchState
> *env1, target_ulong addr)
> pd = env1->iotlb[mmu_idx][page_index]& ~TARGET_PAGE_MASK;
> mr = iotlb_to_region(pd);
> if (mr !=&io_mem_ram&& mr !=&io_mem_rom
> -&& mr !=&io_mem_notdirty&& !mr->rom_device) {
> +&& mr !=&io_mem_notdirty&& !mr->rom_device
> +&& mr !=&io_mem_watch) {
> #if defined(TARGET_ALPHA) || defined(TARGET_MIPS) || defined(TARGET_SPARC)
> cpu_unassigned_access(env1, addr, 0, 1, 0, 4);
> #else
>
prev parent reply other threads:[~2012-03-19 18:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-19 9:40 [Qemu-devel] [PULL] Memory core regression fixes Avi Kivity
2012-03-19 17:15 ` Avi Kivity
2012-03-19 17:18 ` Anthony Liguori
2012-03-19 21:16 ` Anthony Liguori
2012-03-19 18:12 ` Anthony Liguori [this message]
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=4F67770E.8040107@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=qemu-devel@nongnu.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.