All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Adnan Khaleel" <adnan@khaleel.us>
To: qemu-devel@nongnu.org
Cc: blauwirbel@gmail.com
Subject: Re: [Qemu-devel] Single 64bit memory transaction instead of two 32bit memory transaction
Date: Thu, 01 Sep 2011 14:16:55 -0500	[thread overview]
Message-ID: <20110901191655.5b42e714@shadowfax.no-ip.com> (raw)

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

I had asked this question a year ago and I managed to have a temporary work around for doing a single 64bit read/write operations but now I'm looking for a more complete solution.

Is there anyway we can prevent Qemu breaking up 64,128 and 256bit XMM or YMM instructions into smaller chunks and have them issue as a single transaction of the original width? This is not an issue for reading/writing to the processor's memory but for an I/O device attached over PCI. One hack is that I could accumulate the writes as they're happening but I have no way of knowing if the writes are from the same instruction.

Thanks

AK


Re: [Qemu-devel] Single 64bit memory transaction instead of two 32bit me
    _____  

      

     From:      Blue Swirl          
     Subject:      Re: [Qemu-devel] Single 64bit memory transaction instead of two 32bit memory transaction.      
     Date:      Tue, 9 Nov 2010 17:57:28 +0000



> Legacy. Patches have been submitted to add 64 bit IO handlers. But  > there have been other discussions to change the whole I/O interface. 



> On Mon, Nov 8, 2010 at 11:27 PM, Adnan Khaleel <address@hidden> wrote:>> In the file exec.c:

>> The memory Write/Read functions are declared   as an array of 4 entries where the index values of 0,1,2 correspond to   8,16 and 32bit write and read functions respectively.

>> CPUWriteMemoryFunc *io_mem_write[IO_MEM_NB_ENTRIES][4];
>> CPUReadMemoryFunc *io_mem_read[IO_MEM_NB_ENTRIES][4];

>> Is   there any reason why we can't extend this to include 64bit writes and   read by increasing the array size? This is because 64bit reads are   currently handled as two separate 32bit reads for eg: sommu_template.h

>> static inline DATA_TYPE glue(io_read, SUFFIX)(target_phys_addr_t physaddr,
>>                                               target_ulong addr,
>>                                               void *retaddr)
>> {
>> :
>>    res = io_mem_read[index][2](io_mem_opaque[index], physaddr);
>>    res |= (uint64_t)io_mem_read[index][2](io_mem_opaque[index], physaddr + 4) << 32;
>>:
>>    return res;
>>}

>> I'm   sure this is happening in other places as well. Is there a reason for   this or could we arbitrarily increase this (within limits >> ofcourse)?

>> Thanks

>> AK

[-- Attachment #2: Type: text/html, Size: 4035 bytes --]

             reply	other threads:[~2011-09-01 19:17 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-01 19:16 Adnan Khaleel [this message]
2011-09-03  1:53 ` [Qemu-devel] Single 64bit memory transaction instead of two 32bit memory transaction Richard Henderson
  -- strict thread matches above, loose matches on Subject: below --
2011-09-03 22:36 Adnan Khaleel
2010-11-08 23:27 Adnan Khaleel
2010-11-09 17:57 ` Blue Swirl

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=20110901191655.5b42e714@shadowfax.no-ip.com \
    --to=adnan@khaleel.us \
    --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.