[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] xen/arm: Crash when allocating memory for ACPI table (Was Re: Design doc of adding ACPI support for arm64 on Xen - version 2)



Hi Julien,

On 2015/8/14 22:17, Julien Grall wrote:
(Renaming the subject)

Hi Shannon,

On 14/08/15 15:05, Shannon Zhao wrote:


On 2015/8/12 17:11, Julien Grall wrote:
On 12/08/2015 08:22, Shannon Zhao wrote:
Hi,

Hi Shannon,

It's not part of the design discussion and we are avoiding to mix
discussion. Can you please create another thread (or at least renaming
the subject)?

I'm working on re-spinning this patchset while encountering a werid
problem about xzalloc_bytes.

Since I need to copy some ACPI tables, I need to allocate some memory
for it. So there are a few places calling xzalloc_bytes. And it fails at
the fifth one. The log is shown as following:

Do you copy data in the newly allocated memory between 2 xzalloc_bytes?


No, I just use xzalloc_bytes to allocate some place and copy ACPI to the
allocated place, modify the content, then call
raw_copy_to_guest_flush_dcache to copy the modified tables to guest memory.

Can you provide the code and show which call is crashing?

Oh, sorry. The code is not on hand as it stays at my working computer.
From previous debug, it fails at the xzalloc_bytes. Because I add two printk before and after the xzalloc_bytes, only the before one shows.

The code calling route is like below:

acpi_create_fadt();
acpi_create_gtdt();
acpi_create_madt();
acpi_create_stao();
acpi_create_xsdt();
acpi_map_rsdp();
acpi_map_rest_table();
acpi_create_est();
acpi_create_mmap();
...

Within everyone of these functions, it will call xzalloc_bytes to allocate memory and call raw_copy_to_guest_flush_dcache to copy the modified tables to guest memory. And this failure happened at acpi_create_xsdt().

If I add xzalloc_bytes(1000) before acpi_create_xsdt() like below:

acpi_create_fadt();
acpi_create_gtdt();
acpi_create_madt();
acpi_create_stao();

xzalloc_bytes(1000);

acpi_create_xsdt();
acpi_map_rsdp();
acpi_map_rest_table();
acpi_create_est();
acpi_create_mmap();
...

The failure will not happen at acpi_create_xsdt() but at acpi_create_mmap().

--
Shannon

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.