On 17.06.19 12:18, Ralf Ramsauer wrote:
>
>
> On 6/17/19 12:15 PM, Jan Kiszka wrote:
>> On 17.06.19 12:11, Ralf Ramsauer wrote:
>>> Hi Jan,
>>>
>>> On 6/17/19 9:49 AM, Jan Kiszka wrote:
>>>> Hi all,
>>>>
>>>> by the end of this week, I'd like to tag a new release. If you have
>>>> anything pending that should be included, make sure to post it soon. My
>>>> integration queue is empty, so also let me know if I missed something.
>>>
>>> Andrej still has two patches in his queue, but they're not necessarily
>>> required for v0.11.
>>>
>>> There's still the MSR bitmap issue on AMD64. Valentine didn't respond
>>> yet, I'll have a look at that soon, it's an open issue that should be
>>> fixed.
>>
>> Let me look into that.
>
> Ok. (Maybe that could also be the issue why apic-demo shows implausible
> timings on amd64)
>
Followed up on that thread. Should be quickly resolvable.
>>
>>>
>>> Other than that, I'm in the meanwhile pretty sure that there's something
>>> odd with VT-d, but I can't yet tell what it is exactly.
>>
>> Do you need me to write an instrumentation patch?
>
> Maybe. Let me try some other things I wanted to test last week.
> Otherwise I'll return to you.
>
FWIW, please try this nevertheless:
diff --git a/hypervisor/arch/x86/vtd.c b/hypervisor/arch/x86/vtd.c
index 1cae0dcb..110184fa 100644
--- a/hypervisor/arch/x86/vtd.c
+++ b/hypervisor/arch/x86/vtd.c
@@ -567,6 +567,7 @@ static void vtd_update_irte(unsigned int index, union
vtd_irte content)
void *reg_base = dmar_reg_base;
unsigned int n;
+printk("%s: index %d, present %d, content %016llx %016llx\n", __func__, index,
content.field.p, content.raw[0], content.raw[1]);
if (content.field.p) {
/*
* Write upper half first to preserve non-presence.
@@ -824,6 +825,7 @@ int iommu_map_interrupt(struct cell *cell, u16 device_id,
unsigned int vector,
union vtd_irte irte;
int base_index;
+printk("%s: device %04x, vector %d, irq_msg %016llx\n", __func__, device_id,
vector, *(u64 *)&irq_msg);
base_index = vtd_find_int_remap_region(device_id);
if (base_index < 0)
return base_index;
Should list the IRTE entries that are written or invalidated. When
matching their number and device ID against the fault later on, we may
see clearer. If not, we may need to go up further in the call chain, to
the callers of iommu_map_interrupt.
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/159a6d4d-cde4-cd0d-48cb-20be69fca730%40siemens.com.
For more options, visit https://groups.google.com/d/optout.