qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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 17:11:44 +0300	[thread overview]
Message-ID: <20200614141144.GA8561@jondnuc> (raw)
In-Reply-To: <20200528110247.GD3071@jondnuc>

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.


  reply	other threads:[~2020-06-14 14:13 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 [this message]
2020-06-14 15:20                     ` Jon Doron
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=20200614141144.GA8561@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).