On Thu, 14 Feb 2019 01:11:03 -0500 Kimberly Brown <kimbrownkd@xxxxxxxxx> wrote: > On Mon, Feb 11, 2019 at 10:02:47AM -0800, Stephen Hemminger wrote: > > On Mon, 11 Feb 2019 02:01:18 -0500 > > Kimberly Brown <kimbrownkd@xxxxxxxxx> wrote: > > > > > On Fri, Feb 08, 2019 at 02:32:09PM -0800, Stephen Hemminger wrote: > > > > On Fri, 8 Feb 2019 05:01:12 -0500 > > > > Kimberly Brown <kimbrownkd@xxxxxxxxx> wrote: > > > > > > > > You are right, the current behavior is broken. > > > > It would be good to add a description of under what conditions > > > > monitor is not used. Is this some part of a project emulating > > > > Hyper-V? > > > > > > > > > > I'm not sure which conditions determine whether the monitor mechanism is > > > used. I've searched the Hypervisor TLFS, and I couldn't find any > > > information. If you have any suggestions for where I can find this > > > information, please let me know. > > > > The monitor page stuff pre-dates my involvement with Hyper-V. KY might know. > > But based on comments it looks like it was added to avoid hypercalls > > for each message. It probably showed up in Windows Server 2012 timeframe. > > > > To test you might want to dig up Windows Server 2008. > > > > It looks like the monitor mechanism has always been used. It's present in the > earliest commit that I can find: 3e7ee4902fe6 ("add the Hyper-V virtual bus") > from 2009. > > I propose that the following sentences be added to the sysfs documentation for > the affected attributes: > > "The monitor page mechanism is used for performance critical channels (storage, > network, etc.). Channels that do not use the monitor page mechanism will return > EINVAL." > > I think that this provides sufficient information for a user to understand why > opening an affected file can return EINVAL. What do you think? Thanks for following up. I agree with you EINVAL works as a solution. My understanding is that their are two ways a channel can work. The first one is for the guest to send a hyper call to the host to indicate when data is available. The other is for the guest to indicate by setting a bit in shared memory with host. The shared memory approach reduces host/guest overhead and allows for more opportunities for batching in the ring. The host checks the shared memory on a polling interval defined in the latency field. The hypercall method does not use the monitor page. It has lower latency (no polling). _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel