Re: [Dosemu-devel] /dev/mem and PCI memory = EFAULT (regression?)
Brought to you by:
bartoldeman
From: Stas S. <st...@li...> - 2016-10-28 21:37:03
|
OK, thanks for the prompt reply, Andy! I'll try your sysfs suggestion. Let me just add a bit of CCs to get more people involved. I believe the ram size involvement makes this smell like a bug, plus it looks like a regression. Not that I am going to suffer much (this pass-through stuff always breaks in a million of different ways, I'll probably just remove it), but its still a very questionable change IMO. 29.10.2016 00:26, Andy Lutomirski пишет: > On Fri, Oct 28, 2016 at 2:18 PM, Stas Sergeev <st...@li...> wrote: >> 29.10.2016 00:05, Andy Lutomirski пишет: >> >>> On Fri, Oct 28, 2016 at 2:03 PM, Stas Sergeev <st...@li...> wrote: >>>> Hello. >>>> >>>> For the long time dosemu used /dev/mem for vga pass-through. >>>> Now it appears /dev/mem has this check: >>>> http://lxr.free-electrons.com/source/drivers/char/mem.c#L51 >>>> which prevents an accesses to PCI memory regions if the >>>> "high_memory" points low enough. It seems "high_memory" >>>> just points to the end of the physical ram, so depending on >>>> the ram size you either can access PCI devices or you get >>>> EFAULT. >>>> Was it wrong to use /dev/mem for accessing the PCI devices? >>>> How should I do that now? >>>> >>> What is DOSEMU trying to do here? Access the framebuffer? >>> >>> ISTM it would be better to use the DRM or FB layer directly (just map >>> the framebuffer itself) or, if necessary, use VFIO. >> Yes, framebuffer. >> Mapping fb directly is not really an option because dosemu does >> its own modesetting when you do vga pass-through. So it is >> usually started that way with "nomodeset=1" and w/o fb. >> Yes, some crazy people try the pass-through even out of fb >> console, but that's weird (the problem is most SDL2 builds do >> not have directfb backend compiled in, otherwise we could >> just use SDL rendering on top of fb). >> >> The thing is, I needed (for testing purposes, unrelated to dosemu) >> some quick way to access the PCI memory space, and to my surprise I >> couldn't do that with /dev/mem. Was this really disallowed intentionally? > I believe so. > > Try the /sys/devices/.../resource? and resource?_wc files. > > --Andy > |