From: Jon Doron <arilou@gmail.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: mail@maciej.szmigiero.name, eyakovlev@virtuozzo.com,
ehabkost@redhat.com, qemu-devel@nongnu.org,
Roman Kagan <rvkagan@yandex-team.ru>,
liran.alon@oracle.com, Roman Kagan <rkagan@virtuozzo.com>,
Paolo Bonzini <pbonzini@redhat.com>,
vkuznets@redhat.com,
"Maciej S . Szmigiero" <maciej.szmigiero@oracle.com>
Subject: Re: [PATCH v4 5/6] i386: Hyper-V VMBus ACPI DSDT entry
Date: Sun, 14 Jun 2020 18:20:41 +0300 [thread overview]
Message-ID: <20200614152041.GB8561@jondnuc> (raw)
In-Reply-To: <20200614141144.GA8561@jondnuc>
On 14/06/2020, Jon Doron wrote:
>On 28/05/2020, Jon Doron wrote:
>>On 28/05/2020, Igor Mammedov wrote:
>>>On Thu, 28 May 2020 08:26:42 +0300
>>>Jon Doron <arilou@gmail.com> wrote:
>>>
>>>>On 22/05/2020, Igor Mammedow wrote:
>>>>>On Thu, 21 May 2020 18:02:07 +0200
>>>>>Paolo Bonzini <pbonzini@redhat.com> wrote:
>>>>>
>>>>>>On 13/05/20 17:34, Igor Mammedov wrote:
>>>>>>> I'd rather avoid using random IRQ numbers (considering we are
>>>>>>> dealing with black-box here). So if it's really necessary to have
>>>>>>> IRQ described here, I'd suggest to implement them in device model
>>>>>>> so they would be reserved and QEMU would error out in a sane way if
>>>>>>> IRQ conflict is detected.
>>>>>>
>>>>>>We don't generally detect ISA IRQ conflicts though, do we?
>>>>>
>>>>>that I don't know that's why I'm not suggesting how to do it.
>>>>>The point is hard-coding in AML random IRQs is not right thing to do,
>>>>>(especially with the lack of 'any' spec), as minimum AML should pull
>>>>>it from device model and that probably should be configurable and set
>>>>>by board.
>>>>>
>>>>>Other thing is:
>>>>>I haven't looked at VMBus device model in detail, but DSDT part aren't
>>>>>matching device though (device model is not ISA device hence AML part
>>>>>shouldn't be on in ISA scope), where to put it is open question.
>>>>>There were other issues with AML code, I've commented on, so I was
>>>>>waiting on respin with comments addressed.
>>>>>I don't think that this patch is good enough for merging.
>>>>>
>>>>>
>>>>
>>>>But it seems like the current patch does match what's Microsoft HyperV
>>>>is publishing in it's APCI tables.
>>>>
>>>>I dont think it's correct for us to "fix" Microsoft emulation even if
>>>>it's wrong, since that's what Windows probably expects to see...
>>>>
>>>>I tried looking where Microsoft uses the ACPI tables to identify the
>>>>VMBus but without much luck in order to understand how flexible a change
>>>>would be for the OS to still detect the VMBus device, but in general
>>>>I think "correcting" something that is emulated 1:1 because there is no
>>>>spec is the right way.
>>>
>>>I'd agree, if removing nonsense would break VMBus detection (does it?).
>>>if something is that doesn't make sense but has to stay because it is need
>>>to make windows happy, that's fine , just add annotate is with comment,
>>>so it won't confuse anyone why that code exists there later on.
>>>
>>>I suggest to:
>>>1. try dropping _PS* & _STA as it doesn't actually does anything and _PS3 is plain wrong
>>>2. drop one IRQ, newer hyper-v seems to be doing fine with only one
>>>3. it's not ISA device, I'd suggest to move into _SB scope
>>>4. I don't know much about IRQs but
>>> git grep DEFINE_PROP_ | grep -i iqr
>>> yields nothing so I'm not sure if it's acceptable. Typically it's board that assigns
>>> IRQ and not device, for Sysbus devices (see: sysbus_init_irq/sysbus_connect_irq).
>>> So I'd leave it upto Paolo or someone else to decide/comment on.
>>>
>>
>>Sounds like a plan, I'll try to come up with the test results
>>(at least for Windows 10 guest which is what I have setup) and update
>>this thread with the results.
>>
>>-- Jon.
>>
>>>>
>>>>>>
>>>>>>Paolo
>>>>>>
>>>>>
>>>>
>>>
>Hi guys,
>
>Sorry for the delay...
>
>So first ill clarify what was the test, the test was to see the device
>"Microsoft Hyper-V Virtual Machine Bus" in Windows Device Manager under
>"System devices" with a state of "working properly".
>
>It seems like it's ok to drop all the _PS* and _STA.
>
>It seems to be functioning with single IRQ as well, it is worth noting
>that even when i dropped the entire _CRS (so no IRQs resources are
>required, the device was still showing that it's functioning, but I
>suspect this might affect the child devices like hv-net and hv-scsi).
>
>With that said I did run into a small issue I set-up Win10 1903 (aka
>19H1) and it seems like VMBus now requires to have the following
>features enabled:
>HV_VP_RUNTIME_AVAILABLE
>HV_TIME_REF_COUNT_AVAILABLE
>HV_SYNIC_AVAILABLE
>HV_SYNTIMERS_AVAILABLE
>HV_APIC_ACCESS_AVAILABLE
>HV_HYPERCALL_AVAILABLE
>HV_VP_INDEX_AVAILABLE
>
>So notice that previously only SYNIC and VPINDEX was needed, now you
>need the whole thing so you need to run qemu with something like
>-cpu host,hv-relaxed,hv_spinlocks=0x1fff,hv_time,hv-vapic,hv-vpindex,hv-synic,hv-runtime,hv-stimer
>
>The validation was done in winhv!WinHvpCheckPartitionPrivileges .
>
>Paolo I noticed you have done a PULL request, would you like to wait
>on it and we will submit a version with a single IRQ (selectable by
>user property) and go with Igor's suggestion dropping _PS* and _STA
>(though like I said before I prefer to mimic the original HyperV with
>it's bugs, but I'll leave this decision to you).
>
>Also today VMBus only verifies SYNIC is enabled I'm not sure how but I
>wonder if we want to some how exports from the CPU which other HV
>features are enabled so we can verify all the required ones are set,
>would appreciate if you have any suggestions here.
>
>Cheers,
>-- Jon.
I got the latest DSDT from one of the latest builds 19041
Device (\_SB.VMOD.VMBS)
{
Name (STA, 0x0F)
Name (_ADR, Zero) // _ADR: Address
Name (_DDN, "VMBUS") // _DDN: DOS Device Name
Name (_HID, "VMBus") // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
STA &= 0x0D
}
Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
{
STA |= 0x0F
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (STA) /* \_SB_.VMOD.VMBS.STA_ */
}
Name (_PS3, Zero) // _PS3: Power State 3
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IRQ (Edge, ActiveHigh, Exclusive, )
{5}
})
}
So things looks the same...
next prev parent reply other threads:[~2020-06-14 15:21 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-24 12:34 [PATCH v4 0/6] hyperv: VMBus implementation Jon Doron
2020-04-24 12:34 ` [PATCH v4 1/6] hyperv: expose API to determine if synic is enabled Jon Doron
2020-04-24 12:34 ` [PATCH v4 2/6] vmbus: add vmbus protocol definitions Jon Doron
2020-04-24 12:34 ` [PATCH v4 3/6] vmbus: vmbus implementation Jon Doron
2020-04-24 12:34 ` [PATCH v4 4/6] i386:pc: whitelist dynamic vmbus-bridge Jon Doron
2020-04-24 12:34 ` [PATCH v4 5/6] i386: Hyper-V VMBus ACPI DSDT entry Jon Doron
2020-05-05 13:06 ` Igor Mammedov
2020-05-05 15:38 ` Jon Doron
2020-05-06 13:37 ` Maciej S. Szmigiero
2020-05-07 3:14 ` Jon Doron
2020-05-11 20:11 ` Roman Kagan
2020-05-13 15:37 ` Igor Mammedov
2020-05-15 8:56 ` Jon Doron
2020-05-15 12:35 ` Roman Kagan
2020-05-11 18:21 ` Roman Kagan
2020-05-13 15:34 ` Igor Mammedov
2020-05-21 16:02 ` Paolo Bonzini
2020-05-22 8:40 ` Igor Mammedow
2020-05-28 5:26 ` Jon Doron
2020-05-28 5:36 ` Jon Doron
2020-05-28 10:37 ` Igor Mammedov
2020-05-28 11:02 ` Jon Doron
2020-06-14 14:11 ` Jon Doron
2020-06-14 15:20 ` Jon Doron [this message]
2020-06-14 21:40 ` Maciej S. Szmigiero
2020-06-15 2:40 ` Jon Doron
2020-06-15 6:54 ` Maciej S. Szmigiero
2020-04-24 12:34 ` [PATCH v4 6/6] vmbus: add infrastructure to save/load vmbus requests Jon Doron
2020-05-21 16:03 ` [PATCH v4 0/6] hyperv: VMBus implementation Paolo Bonzini
2020-05-22 2:53 ` Jon Doron
2020-05-22 7:19 ` Paolo Bonzini
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=20200614152041.GB8561@jondnuc \
--to=arilou@gmail.com \
--cc=ehabkost@redhat.com \
--cc=eyakovlev@virtuozzo.com \
--cc=imammedo@redhat.com \
--cc=liran.alon@oracle.com \
--cc=maciej.szmigiero@oracle.com \
--cc=mail@maciej.szmigiero.name \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rkagan@virtuozzo.com \
--cc=rvkagan@yandex-team.ru \
--cc=vkuznets@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).