Re: [git pull] drm fixes for v4.12-rc1
On Thu, May 11, 2017 at 11:00 PM, Dave Airliewrote: > > It also has an amdgpu fixes pull, with lots of ongoing work on Vega10 > which is new in this kernel and is preliminary support so may have a > fair bit of movement. Note: I will *not* be taking these kinds of pull requests after rc1. If Vega10 is in such bad shape that it will need this kind of stuff and isn't worth shipping without them in 4.12, I will take a *oneline* that just disables it. So no "thousands of lines of fixes for a new driver". Being new to 4.12 isn't an excuse for crazy stuff after the merge window. If it will need more of this kind of attention, all it means is that it shouldn't have been sent to me at all in the first place. The drm subsystem is still on my "no more of this shit" list, so I'm going to be very unforgiving of big pull requests when they aren't appropriate. Linus -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm/exynos: g2d userptr memory corruption
Hi Tobias, Am Sonntag, den 16.08.2015, 14:48 +0200 schrieb Tobias Jakobi: Hello, some time ago I checked whether I could use the userptr functionality to do zero-copy from userspace allocated buffers via the G2D. This didn't work out so well, so kinda put this to the bottom of my TODO list. Now that IOMMU support has landed and Jan Kara has rewrote page pinning using frame vectors (see [1]) I gave userptr another try. The results are much better. I'm not experiencing any kernel lockups or sysmmu pagefaults anymore. However the image now suffers from visual artifacts. These images show the nature of the artifacts: http://i.imgur.com/nzT6g3Y.jpg http://i.imgur.com/wkuYI6X.jpg The corruption always manifests itself in these pixel lines of fixed size and wrong color. I have written a testcase as part of libdrm for this issue: https://github.com/tobiasjakobi/libdrm/commit/db8bf6844436598251f67a71fc334b929bfb2b71 It allocates N (N an even number) buffers which are aligned to the system pagesize. Then it does this each iteration: 1) Fill the first N/2 buffers with random data 2) Copy the first half to the second half of the buffers 3) memcmp() first and second half (verification pass) Usually this verification already fails on the first iteration. An interesting observation is that increasing (!) the buffer size (so the amount of pixels that have to copied per buffer grows) makes this issue less likely to happen. With the default 512x512 buffers however it happens, like I said above, almost immediately. This is obviously a cache flush missing. The memory you get from userspace is normal cached memory, so to make it visible to the GPU you need to flush parts of the cache out to main memory. The corruption you are seeing is just unflushed cachelines. This also explains why increasing the buffer size helps: the more memory the CPU touches the more cachelines will be flushed out to be replaced with new data. So you need to go and have a look at dma_map() and dma_sync_*_for_*() and friends. Regards, Lucas -- Pengutronix e.K. | Lucas Stach | Industrial Linux Solutions | http://www.pengutronix.de/ | -- -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm/exynos: g2d userptr memory corruption
Thanks Lucas for the explanation! Lucas Stach wrote: Hi Tobias, Am Sonntag, den 16.08.2015, 14:48 +0200 schrieb Tobias Jakobi: Hello, some time ago I checked whether I could use the userptr functionality to do zero-copy from userspace allocated buffers via the G2D. This didn't work out so well, so kinda put this to the bottom of my TODO list. Now that IOMMU support has landed and Jan Kara has rewrote page pinning using frame vectors (see [1]) I gave userptr another try. The results are much better. I'm not experiencing any kernel lockups or sysmmu pagefaults anymore. However the image now suffers from visual artifacts. These images show the nature of the artifacts: http://i.imgur.com/nzT6g3Y.jpg http://i.imgur.com/wkuYI6X.jpg The corruption always manifests itself in these pixel lines of fixed size and wrong color. I have written a testcase as part of libdrm for this issue: https://github.com/tobiasjakobi/libdrm/commit/db8bf6844436598251f67a71fc334b929bfb2b71 It allocates N (N an even number) buffers which are aligned to the system pagesize. Then it does this each iteration: 1) Fill the first N/2 buffers with random data 2) Copy the first half to the second half of the buffers 3) memcmp() first and second half (verification pass) Usually this verification already fails on the first iteration. An interesting observation is that increasing (!) the buffer size (so the amount of pixels that have to copied per buffer grows) makes this issue less likely to happen. With the default 512x512 buffers however it happens, like I said above, almost immediately. This is obviously a cache flush missing. The memory you get from userspace is normal cached memory, so to make it visible to the GPU you need to flush parts of the cache out to main memory. The corruption you are seeing is just unflushed cachelines. This also explains why increasing the buffer size helps: the more memory the CPU touches the more cachelines will be flushed out to be replaced with new data. I should point out that the snapshots I uploaded were done with a different setup. There only the source memory of the G2D operation is a userspace allocated buffer. The destination is a GEM buffer allocated through libdrm, which is then used as framebuffer. So the issue already appears when just the source is userspace allocated. What works however is an operation between GEM to GEM. However this might be related to the default allocation flags libdrm uses. So you need to go and have a look at dma_map() and dma_sync_*_for_*() and friends. Regards, Lucas With best wishes, Tobias -- -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On Thu 2015-01-29 14:11:25, Dave Airlie wrote: These two copy to/from VGA memory, however on the Silicon Motion SMI750 VGA card on a 64-bit system cause console corruption. This is due to the hw being buggy and not handling a 64-bit transaction correctly. We could try and create a 32-bit version of these routines, but I'm not sure the optimisation is worth much today. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1132826 Tested-by: Huawei engineering. Signed-off-by: Dave Airlie airl...@redhat.com Actually... are you sure this is right fix? IOW can gcc do the optimalization behind your back and still break the buggy card? Pavel diff --git a/include/linux/vt_buffer.h b/include/linux/vt_buffer.h index 057db7d..f38c10b 100644 --- a/include/linux/vt_buffer.h +++ b/include/linux/vt_buffer.h @@ -21,10 +21,6 @@ #ifndef VT_BUF_HAVE_RW #define scr_writew(val, addr) (*(addr) = (val)) #define scr_readw(addr) (*(addr)) -#define scr_memcpyw(d, s, c) memcpy(d, s, c) -#define scr_memmovew(d, s, c) memmove(d, s, c) -#define VT_BUF_HAVE_MEMCPYW -#define VT_BUF_HAVE_MEMMOVEW #endif #ifndef VT_BUF_HAVE_MEMSETW -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On Mon, Feb 9, 2015 at 11:35 AM, Daniel Stone dan...@fooishbar.org wrote: On 5 February 2015 at 11:35, One Thousand Gnomes gno...@lxorguk.ukuu.org.uk wrote: If I'm not mistaken, that would be as simple as adding #define VT_BUF_HAVE_RW. #define scr_writew(val, addr) (*(addr) = (val)) #define scr_readw(addr) (*(addr)) to arch/x86/include/asm/vga.h. and stick an #if defined (CONFIG_SUPPORT_SHITE_VGA_ADAPTERS) #endif around that and its sorted as an option everyone can leave off but the afflicted. Well, given all the distros will enable that, might as well be #if !defined(CONFIG_BREAK_SOME_HARDWARE_BUT_VGA_SCROLLING_WILL_BE_IMMEASURABLY_FASTER). All distros on 1 out of 29 architectures? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say programmer or something like that. -- Linus Torvalds -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On Mon, 9 Feb 2015 11:00:55 + Daniel Stone dan...@fooishbar.org wrote: On 9 February 2015 at 10:49, Geert Uytterhoeven ge...@linux-m68k.org wrote: On Mon, Feb 9, 2015 at 11:35 AM, Daniel Stone dan...@fooishbar.org wrote: On 5 February 2015 at 11:35, One Thousand Gnomes gno...@lxorguk.ukuu.org.uk wrote: #if defined (CONFIG_SUPPORT_SHITE_VGA_ADAPTERS) #endif around that and its sorted as an option everyone can leave off but the afflicted. Well, given all the distros will enable that, might as well be #if !defined(CONFIG_BREAK_SOME_HARDWARE_BUT_VGA_SCROLLING_WILL_BE_IMMEASURABLY_FASTER). All distros on 1 out of 29 architectures? It's a fairly popular architecture. I imagine most distros wouldn't enable it even on x86. It's an incredibly obscure setup from the evidence of how long it took to get reported. Most distributions don't support non PAE processors and other far more common things 8) Alan -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On 9 February 2015 at 10:49, Geert Uytterhoeven ge...@linux-m68k.org wrote: On Mon, Feb 9, 2015 at 11:35 AM, Daniel Stone dan...@fooishbar.org wrote: On 5 February 2015 at 11:35, One Thousand Gnomes gno...@lxorguk.ukuu.org.uk wrote: #if defined (CONFIG_SUPPORT_SHITE_VGA_ADAPTERS) #endif around that and its sorted as an option everyone can leave off but the afflicted. Well, given all the distros will enable that, might as well be #if !defined(CONFIG_BREAK_SOME_HARDWARE_BUT_VGA_SCROLLING_WILL_BE_IMMEASURABLY_FASTER). All distros on 1 out of 29 architectures? It's a fairly popular architecture. -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On 5 February 2015 at 11:35, One Thousand Gnomes gno...@lxorguk.ukuu.org.uk wrote: If I'm not mistaken, that would be as simple as adding #define VT_BUF_HAVE_RW. #define scr_writew(val, addr) (*(addr) = (val)) #define scr_readw(addr) (*(addr)) to arch/x86/include/asm/vga.h. and stick an #if defined (CONFIG_SUPPORT_SHITE_VGA_ADAPTERS) #endif around that and its sorted as an option everyone can leave off but the afflicted. Well, given all the distros will enable that, might as well be #if !defined(CONFIG_BREAK_SOME_HARDWARE_BUT_VGA_SCROLLING_WILL_BE_IMMEASURABLY_FASTER). -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On Tue, Feb 3, 2015 at 4:54 PM, One Thousand Gnomes gno...@lxorguk.ukuu.org.uk wrote: On Thu, 29 Jan 2015 15:40:33 -0800 Linus Torvalds torva...@linux-foundation.org wrote: On Wed, Jan 28, 2015 at 8:11 PM, Dave Airlie airl...@redhat.com wrote: Linus, this came up a while back I finally got some confirmation that it fixes those servers. I'm certainly ok with this. which way should it go in? The users are: - drivers/tty/vt/vt.c (Greg KH, tty layer) - drivers/video/console/* (fbcon people: Tomi Valkeinen and friends) and it might make sense to have *some* indication of how much worse this makes fbcon performance in particular.. For devices that have no hardware scrolling it used to be double digit percentages difference between 32 and 64bit when reading from the fb because the reads are not posted and the latency killed you. Writes - not so big a deal - but the bridge should combine them anyway. I imagine 16bit read would be unprintably bad. Fbcon uses scr_mem{cpy,move}w() for the VT buffer (characters + attributes) only, not for the frame buffer data. So the performance degradation should be minimal. However, as this affects real VGA on x86 only, perhaps it can be fixed in arch/x86/include/asm/vga.h instead of include/linux/vt_buffer.h, so platforms not having VGA are not affected? We have these VT_BUF_* and scr_*() abstractions for a reason... If I'm not mistaken, that would be as simple as adding #define VT_BUF_HAVE_RW. #define scr_writew(val, addr) (*(addr) = (val)) #define scr_readw(addr) (*(addr)) to arch/x86/include/asm/vga.h. If someone wants to put one of the bad VGA cards in a non-x86 PCI slot, perhaps a few more architecture-specific asm/vga.h have to be updated: $ git grep -w VT_BUF_HAVE_RW -- arch arch/alpha/include/asm/vga.h:#define VT_BUF_HAVE_RW arch/mips/include/asm/vga.h:#define VT_BUF_HAVE_RW arch/powerpc/include/asm/vga.h:#define VT_BUF_HAVE_RW arch/sparc/include/asm/vga.h:#define VT_BUF_HAVE_RW arch/tile/include/asm/vga.h:#define VT_BUF_HAVE_RW Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say programmer or something like that. -- Linus Torvalds -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
If I'm not mistaken, that would be as simple as adding #define VT_BUF_HAVE_RW. #define scr_writew(val, addr) (*(addr) = (val)) #define scr_readw(addr) (*(addr)) to arch/x86/include/asm/vga.h. and stick an #if defined (CONFIG_SUPPORT_SHITE_VGA_ADAPTERS) #endif around that and its sorted as an option everyone can leave off but the afflicted. Alan -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On Thu, 29 Jan 2015 15:40:33 -0800 Linus Torvalds torva...@linux-foundation.org wrote: On Wed, Jan 28, 2015 at 8:11 PM, Dave Airlie airl...@redhat.com wrote: Linus, this came up a while back I finally got some confirmation that it fixes those servers. I'm certainly ok with this. which way should it go in? The users are: - drivers/tty/vt/vt.c (Greg KH, tty layer) - drivers/video/console/* (fbcon people: Tomi Valkeinen and friends) and it might make sense to have *some* indication of how much worse this makes fbcon performance in particular.. For devices that have no hardware scrolling it used to be double digit percentages difference between 32 and 64bit when reading from the fb because the reads are not posted and the latency killed you. Writes - not so big a deal - but the bridge should combine them anyway. I imagine 16bit read would be unprintably bad. Is it reads or writes that kill the card ? Also note that switching to lots of small writes may break the 3Dfx driver for the early 3Dfx PCI cards - they are really quite touchy about how they are fed. Unfortunately fbcon still matters for dumb EFI framebuffer fallbacks. vgacon it doesn't matter (if it was too slow you could make vgacon as fast as you want by only updating the off screen characters once per vertical blank). fbcon that is a bit harder as you are allowed to scribble on the display as well. You can't even check open/mmapped as you can open, scribble and close. Alan -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Can't gmake libdrm-2.4.59 on OmniOS
On 1 February 2015 at 01:03, CodeSwim OS Development os-...@codeswim.com wrote: I'm trying to build libdrm and have an issue when I gmake after configuring. Steps to reproduce: # uname -a SunOS omnios 5.11 omnios-10b9c79 i86pc i386 i86pc Where can one get a copy of OmniOS ? Free of charge of course :-P But more seriously From the massive log I can spot a few interesting things - _FILE_OFFSET_BITS redefinition. Autotools correctly detects and sets it set to 64 (as you've got a 32bit system/build), yet further down the gcc headers, it's already set to 32. This won't break the build but will likely cause problems at runtime. - A ton of -Wparentheses warnings. These should be safe - you might also want to silence them so that serious issues are clearer. - And last but not leask the missing _IOC symbol. Gentoo people have a patch on the topic [1] - might be nice to clean it up and upstream it. Cheers, Emil [1] http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-libs/libdrm/files/libdrm-2.4.58-solaris.patch?view=markup -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On Wed, Jan 28, 2015 at 8:11 PM, Dave Airlie airl...@redhat.com wrote: Linus, this came up a while back I finally got some confirmation that it fixes those servers. I'm certainly ok with this. which way should it go in? The users are: - drivers/tty/vt/vt.c (Greg KH, tty layer) - drivers/video/console/* (fbcon people: Tomi Valkeinen and friends) and it might make sense to have *some* indication of how much worse this makes fbcon performance in particular.. Greg/Tomi - the patch is removing this: #define scr_memcpyw(d, s, c) memcpy(d, s, c) #define scr_memmovew(d, s, c) memmove(d, s, c) #define VT_BUF_HAVE_MEMCPYW #define VT_BUF_HAVE_MEMMOVEW from linux/vt_buffer.h, because some stupid graphics cards apparently cannot handle 64-bit accesses of regular memcpy/memmove. And on other setups, this will be the reverse: 8-bit accesses due to using rep movsb, which is the fast way to move/clear memory on modern Intel CPU's, but is really wrong for MMIO where it will be slow as hell. So just getting rid of the memcpy/memmove is likely the right thing in general, since the fallbacks go this the traditional 16-bit-at-a-time way. And getting rid of the memcpy _may_ speed things up. But if it slows things down, we might have to try something else. Like saying all cards we've ever seen have been ok with aligned 32-bit accesses, and extend the open-coded scr_memcpy/memmove functions to do that. Hmm? Linus -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On Thu, Jan 29, 2015 at 03:40:33PM -0800, Linus Torvalds wrote: On Wed, Jan 28, 2015 at 8:11 PM, Dave Airlie airl...@redhat.com wrote: Linus, this came up a while back I finally got some confirmation that it fixes those servers. I'm certainly ok with this. which way should it go in? The users are: - drivers/tty/vt/vt.c (Greg KH, tty layer) - drivers/video/console/* (fbcon people: Tomi Valkeinen and friends) and it might make sense to have *some* indication of how much worse this makes fbcon performance in particular.. Greg/Tomi - the patch is removing this: #define scr_memcpyw(d, s, c) memcpy(d, s, c) #define scr_memmovew(d, s, c) memmove(d, s, c) #define VT_BUF_HAVE_MEMCPYW #define VT_BUF_HAVE_MEMMOVEW from linux/vt_buffer.h, because some stupid graphics cards apparently cannot handle 64-bit accesses of regular memcpy/memmove. And on other setups, this will be the reverse: 8-bit accesses due to using rep movsb, which is the fast way to move/clear memory on modern Intel CPU's, but is really wrong for MMIO where it will be slow as hell. So just getting rid of the memcpy/memmove is likely the right thing in general, since the fallbacks go this the traditional 16-bit-at-a-time way. And getting rid of the memcpy _may_ speed things up. But if it slows things down, we might have to try something else. Like saying all cards we've ever seen have been ok with aligned 32-bit accesses, and extend the open-coded scr_memcpy/memmove functions to do that. Hmm? I can take this through the tty tree, but can I put it in linux-next and wait for the 3.20 merge window to give people who might notice a slow-down a chance to object? thanks, greg k-h -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On 30 January 2015 at 10:03, Linus Torvalds torva...@linux-foundation.org wrote: On Thu, Jan 29, 2015 at 3:57 PM, Greg Kroah-Hartman gre...@linuxfoundation.org wrote: I can take this through the tty tree, but can I put it in linux-next and wait for the 3.20 merge window to give people who might notice a slow-down a chance to object? Yes. The problem only affects one (or a couple of) truly outrageously bad graphics cards that are only used in servers (because they are such crap that they wouldn't be acceptable anywhere else anyway), and they have afaik never worked with 64-bit kernels, so it's not even a regression. So it's worth fixing because it's a real - albeit very rare - problem (especially since the enhanched rep instruction model of memcpy could easily be *worse* than the 16-bit-at-a-time manual version), but I wouldn't consider it anywhere near high priority. Totally not a priority, it just finally got tested for RHEL so I wanted to make sure I posted it upstream before I forgot about it for months, I also filed: https://bugzilla.kernel.org/show_bug.cgi?id=92311 since the RH bug is private and full of crap, that bug contains a screenshot of the remote console to see what sort of crap it produces. Dave. -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] vt_buffer: drop console buffer copying optimisations
On Thu, Jan 29, 2015 at 3:57 PM, Greg Kroah-Hartman gre...@linuxfoundation.org wrote: I can take this through the tty tree, but can I put it in linux-next and wait for the 3.20 merge window to give people who might notice a slow-down a chance to object? Yes. The problem only affects one (or a couple of) truly outrageously bad graphics cards that are only used in servers (because they are such crap that they wouldn't be acceptable anywhere else anyway), and they have afaik never worked with 64-bit kernels, so it's not even a regression. So it's worth fixing because it's a real - albeit very rare - problem (especially since the enhanched rep instruction model of memcpy could easily be *worse* than the 16-bit-at-a-time manual version), but I wouldn't consider it anywhere near high priority. Linus -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 1/2] drm/ttm: Enable the dma page pool also for intel IOMMUs
On Mon, Nov 04, 2013 at 05:57:38AM -0800, Thomas Hellstrom wrote: Used by the vmwgfx driver That looks OK to me. And baremetal should not be affected as the Intel VT-d driver turns of the SWIOTLB driver - so it will still use the classic ttm pool code. Reviewed-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com Signed-off-by: Thomas Hellstrom thellst...@vmware.com Reviewed-by: Jakob Bornecrantz ja...@vmware.com --- drivers/gpu/drm/ttm/Makefile |6 +- drivers/gpu/drm/ttm/ttm_page_alloc_dma.c |3 +++ include/drm/ttm/ttm_page_alloc.h | 11 ++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/ttm/Makefile b/drivers/gpu/drm/ttm/Makefile index b2b33dd..b433b9f 100644 --- a/drivers/gpu/drm/ttm/Makefile +++ b/drivers/gpu/drm/ttm/Makefile @@ -5,10 +5,6 @@ ccflags-y := -Iinclude/drm ttm-y := ttm_agp_backend.o ttm_memory.o ttm_tt.o ttm_bo.o \ ttm_bo_util.o ttm_bo_vm.o ttm_module.o \ ttm_object.o ttm_lock.o ttm_execbuf_util.o ttm_page_alloc.o \ - ttm_bo_manager.o - -ifeq ($(CONFIG_SWIOTLB),y) -ttm-y += ttm_page_alloc_dma.o -endif + ttm_bo_manager.o ttm_page_alloc_dma.o obj-$(CONFIG_DRM_TTM) += ttm.o diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c index 7957bee..fb8259f 100644 --- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c +++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c @@ -33,6 +33,7 @@ * when freed). */ +#if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU) #define pr_fmt(fmt) [TTM] fmt #include linux/dma-mapping.h @@ -1142,3 +1143,5 @@ int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data) return 0; } EXPORT_SYMBOL_GPL(ttm_dma_page_alloc_debugfs); + +#endif diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h index 706b962..d1f61bf 100644 --- a/include/drm/ttm/ttm_page_alloc.h +++ b/include/drm/ttm/ttm_page_alloc.h @@ -62,7 +62,7 @@ extern void ttm_pool_unpopulate(struct ttm_tt *ttm); extern int ttm_page_alloc_debugfs(struct seq_file *m, void *data); -#ifdef CONFIG_SWIOTLB +#if defined(CONFIG_SWIOTLB) || defined(CONFIG_INTEL_IOMMU) /** * Initialize pool allocator. */ @@ -94,6 +94,15 @@ static inline int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data) { return 0; } +static inline int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, +struct device *dev) +{ + return -ENOMEM; +} +static inline void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, + struct device *dev) +{ +} #endif #endif -- 1.7.10.4 -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 1/6] drivers/dri/common: A few dri2 functions are not actually DRI2 specific
On Thu, Oct 31, 2013 at 04:13:11PM -0700, Keith Packard wrote: This just renames them so that they can be used with the DRI3 extension without causing too much confusion. Signed-off-by: Keith Packard kei...@keithp.com --- src/mesa/drivers/dri/common/dri_util.c | 50 +- 1 file changed, 25 insertions(+), 25 deletions(-) Reviewed-by: Kristian Høgsberg k...@bitplanet.net diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index c28b0fc..539fb4b 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -291,13 +291,13 @@ validate_context_version(__DRIscreen *screen, /*@{*/ static __DRIcontext * -dri2CreateContextAttribs(__DRIscreen *screen, int api, - const __DRIconfig *config, - __DRIcontext *shared, - unsigned num_attribs, - const uint32_t *attribs, - unsigned *error, - void *data) +driCreateContextAttribs(__DRIscreen *screen, int api, +const __DRIconfig *config, +__DRIcontext *shared, +unsigned num_attribs, +const uint32_t *attribs, +unsigned *error, +void *data) { __DRIcontext *context; const struct gl_config *modes = (config != NULL) ? config-modes : NULL; @@ -442,22 +442,22 @@ dri2CreateContextAttribs(__DRIscreen *screen, int api, } static __DRIcontext * -dri2CreateNewContextForAPI(__DRIscreen *screen, int api, -const __DRIconfig *config, -__DRIcontext *shared, void *data) +driCreateNewContextForAPI(__DRIscreen *screen, int api, + const __DRIconfig *config, + __DRIcontext *shared, void *data) { unsigned error; -return dri2CreateContextAttribs(screen, api, config, shared, 0, NULL, - error, data); +return driCreateContextAttribs(screen, api, config, shared, 0, NULL, + error, data); } static __DRIcontext * -dri2CreateNewContext(__DRIscreen *screen, const __DRIconfig *config, - __DRIcontext *shared, void *data) +driCreateNewContext(__DRIscreen *screen, const __DRIconfig *config, +__DRIcontext *shared, void *data) { -return dri2CreateNewContextForAPI(screen, __DRI_API_OPENGL, - config, shared, data); +return driCreateNewContextForAPI(screen, __DRI_API_OPENGL, + config, shared, data); } /** @@ -609,9 +609,9 @@ static void dri_put_drawable(__DRIdrawable *pdp) } static __DRIdrawable * -dri2CreateNewDrawable(__DRIscreen *screen, - const __DRIconfig *config, - void *data) +driCreateNewDrawable(__DRIscreen *screen, + const __DRIconfig *config, + void *data) { __DRIdrawable *pdraw; @@ -698,7 +698,7 @@ dri2ConfigQueryf(__DRIscreen *screen, const char *var, GLfloat *val) } static unsigned int -dri2GetAPIMask(__DRIscreen *screen) +driGetAPIMask(__DRIscreen *screen) { return screen-api_mask; } @@ -741,13 +741,13 @@ const __DRIdri2Extension driDRI2Extension = { .base = { __DRI_DRI2, 4 }, .createNewScreen= dri2CreateNewScreen, -.createNewDrawable = dri2CreateNewDrawable, -.createNewContext = dri2CreateNewContext, -.getAPIMask = dri2GetAPIMask, -.createNewContextForAPI = dri2CreateNewContextForAPI, +.createNewDrawable = driCreateNewDrawable, +.createNewContext = driCreateNewContext, +.getAPIMask = driGetAPIMask, +.createNewContextForAPI = driCreateNewContextForAPI, .allocateBuffer = dri2AllocateBuffer, .releaseBuffer = dri2ReleaseBuffer, -.createContextAttribs = dri2CreateContextAttribs, +.createContextAttribs = driCreateContextAttribs .createNewScreen2 = dri2CreateNewScreen2, }; -- 1.8.4.2 -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel ___
Re: [PATCH 2/6] dri/intel: Split out DRI2 buffer update code to separate function
On Thu, Oct 31, 2013 at 04:13:12PM -0700, Keith Packard wrote: Make an easy place to splice in a DRI3 version of this function Signed-off-by: Keith Packard kei...@keithp.com --- src/mesa/drivers/dri/i915/intel_context.c | 90 +-- src/mesa/drivers/dri/i965/brw_context.c | 22 ++-- 2 files changed, 68 insertions(+), 44 deletions(-) Reviewed-by: Kristian Høgsberg k...@bitplanet.net diff --git a/src/mesa/drivers/dri/i915/intel_context.c b/src/mesa/drivers/dri/i915/intel_context.c index 2748514..1798bc7 100644 --- a/src/mesa/drivers/dri/i915/intel_context.c +++ b/src/mesa/drivers/dri/i915/intel_context.c @@ -133,15 +133,58 @@ intel_process_dri2_buffer(struct intel_context *intel, struct intel_renderbuffer *rb, const char *buffer_name); -void -intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable) +static void +intel_update_dri2_buffers(struct intel_context *intel, __DRIdrawable *drawable) { - struct gl_framebuffer *fb = drawable-driverPrivate; - struct intel_renderbuffer *rb; - struct intel_context *intel = context-driverPrivate; __DRIbuffer *buffers = NULL; int i, count; const char *region_name; + struct intel_renderbuffer *rb; + struct gl_framebuffer *fb = drawable-driverPrivate; + + intel_query_dri2_buffers(intel, drawable, buffers, count); + + if (buffers == NULL) + return; + + for (i = 0; i count; i++) { + switch (buffers[i].attachment) { + case __DRI_BUFFER_FRONT_LEFT: + rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT); + region_name = dri2 front buffer; + break; + + case __DRI_BUFFER_FAKE_FRONT_LEFT: + rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT); + region_name = dri2 fake front buffer; + break; + + case __DRI_BUFFER_BACK_LEFT: + rb = intel_get_renderbuffer(fb, BUFFER_BACK_LEFT); + region_name = dri2 back buffer; + break; + + case __DRI_BUFFER_DEPTH: + case __DRI_BUFFER_HIZ: + case __DRI_BUFFER_DEPTH_STENCIL: + case __DRI_BUFFER_STENCIL: + case __DRI_BUFFER_ACCUM: + default: + fprintf(stderr, + unhandled buffer attach event, attachment type %d\n, + buffers[i].attachment); + return; + } + + intel_process_dri2_buffer(intel, drawable, buffers[i], rb, region_name); + } +} + +void +intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable) +{ + struct intel_context *intel = context-driverPrivate; + __DRIscreen *screen = intel-intelScreen-driScrnPriv; /* Set this up front, so that in case our buffers get invalidated * while we're getting new buffers, we don't clobber the stamp and @@ -151,42 +194,7 @@ intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable) if (unlikely(INTEL_DEBUG DEBUG_DRI)) fprintf(stderr, enter %s, drawable %p\n, __func__, drawable); - intel_query_dri2_buffers(intel, drawable, buffers, count); - - if (buffers == NULL) - return; - - for (i = 0; i count; i++) { - switch (buffers[i].attachment) { - case __DRI_BUFFER_FRONT_LEFT: -rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT); -region_name = dri2 front buffer; -break; - - case __DRI_BUFFER_FAKE_FRONT_LEFT: -rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT); -region_name = dri2 fake front buffer; -break; - - case __DRI_BUFFER_BACK_LEFT: -rb = intel_get_renderbuffer(fb, BUFFER_BACK_LEFT); -region_name = dri2 back buffer; -break; - - case __DRI_BUFFER_DEPTH: - case __DRI_BUFFER_HIZ: - case __DRI_BUFFER_DEPTH_STENCIL: - case __DRI_BUFFER_STENCIL: - case __DRI_BUFFER_ACCUM: - default: -fprintf(stderr, -unhandled buffer attach event, attachment type %d\n, -buffers[i].attachment); -return; - } - - intel_process_dri2_buffer(intel, drawable, buffers[i], rb, region_name); - } + intel_update_dri2_buffers(intel, drawable); driUpdateFramebufferSize(intel-ctx, drawable); } diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 38147e9..c213b31 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -929,12 +929,11 @@ intel_process_dri2_buffer(struct brw_context *brw, struct intel_renderbuffer *rb, const char *buffer_name); -void -intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable) +static void +intel_update_dri2_buffers(struct brw_context *brw, __DRIdrawable *drawable) { struct gl_framebuffer *fb = drawable-driverPrivate; struct
Re: [PATCH 0/2] Make the vmwgfx driver reasonably DMA-API compliant
On Mon, Nov 04, 2013 at 05:57:37AM -0800, Thomas Hellstrom wrote: These patches makes the vmwgfx driver use the DMA API to obtain valid device addresses rather than blindly using physical addresses. The main motivation is to be able to use a virtual IOMMU in the future. Ooooh. Neat! Are there any RFC patches available? Other TTM drivers typically map pages one by one rather than using a scatter-gather list, but since we can benefit from having a single dma address region set up by the IOMMU, we use a scatter-gather list instead. Finally to be able to handle all the dma mapping modes, we locally extend the scatter-gather list page iterator to handle also the direct physical- and coherent cases. Finally, the TTM DMA page pool is enabled also when the Intel IOMMU is active -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 2/2] drm/vmwgfx: Use the linux DMA api to get valid device addresses of pages
On Mon, Nov 04, 2013 at 05:57:39AM -0800, Thomas Hellstrom wrote: The code handles three different cases: 1) physical page addresses. The ttm page array is used. 2) DMA subsystem addresses. A scatter-gather list is used. 3) Coherent pages. The ttm dma pool is used, together with the dma_ttm array os dma_addr_t Signed-off-by: Thomas Hellstrom thellst...@vmware.com Reviewed-by: Jakob Bornecrantz ja...@vmware.com I looked at it from the TTM DMA perspective and it looks OK for me. --- drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 379 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c| 87 +++- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h| 98 - drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c| 150 ++--- 4 files changed, 620 insertions(+), 94 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c index 96dc84d..7776e6f 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c @@ -141,37 +141,374 @@ struct ttm_placement vmw_srf_placement = { }; struct vmw_ttm_tt { - struct ttm_tt ttm; + struct ttm_dma_tt dma_ttm; struct vmw_private *dev_priv; int gmr_id; + struct sg_table sgt; + struct vmw_sg_table vsgt; + uint64_t sg_alloc_size; + bool mapped; }; +/** + * Helper functions to advance a struct vmw_piter iterator. + * + * @viter: Pointer to the iterator. + * + * These functions return false if past the end of the list, + * true otherwise. Functions are selected depending on the current + * DMA mapping mode. + */ +static bool __vmw_piter_non_sg_next(struct vmw_piter *viter) +{ + return ++(viter-i) viter-num_pages; +} + +static bool __vmw_piter_sg_next(struct vmw_piter *viter) +{ + return __sg_page_iter_next(viter-iter); +} + + +/** + * Helper functions to return a pointer to the current page. + * + * @viter: Pointer to the iterator + * + * These functions return a pointer to the page currently + * pointed to by @viter. Functions are selected depending on the + * current mapping mode. + */ +static struct page *__vmw_piter_non_sg_page(struct vmw_piter *viter) +{ + return viter-pages[viter-i]; +} + +static struct page *__vmw_piter_sg_page(struct vmw_piter *viter) +{ + return sg_page_iter_page(viter-iter); +} + + +/** + * Helper functions to return the DMA address of the current page. + * + * @viter: Pointer to the iterator + * + * These functions return the DMA address of the page currently + * pointed to by @viter. Functions are selected depending on the + * current mapping mode. + */ +static dma_addr_t __vmw_piter_phys_addr(struct vmw_piter *viter) +{ + return page_to_phys(viter-pages[viter-i]); +} + +static dma_addr_t __vmw_piter_dma_addr(struct vmw_piter *viter) +{ + return viter-addrs[viter-i]; +} + +static dma_addr_t __vmw_piter_sg_addr(struct vmw_piter *viter) +{ + return sg_page_iter_dma_address(viter-iter); +} + + +/** + * vmw_piter_start - Initialize a struct vmw_piter. + * + * @viter: Pointer to the iterator to initialize + * @vsgt: Pointer to a struct vmw_sg_table to initialize from + * + * Note that we're following the convention of __sg_page_iter_start, so that + * the iterator doesn't point to a valid page after initialization; it has + * to be advanced one step first. + */ +void vmw_piter_start(struct vmw_piter *viter, const struct vmw_sg_table *vsgt, + unsigned long p_offset) +{ + viter-i = p_offset - 1; + viter-num_pages = vsgt-num_pages; + switch (vsgt-mode) { + case vmw_dma_phys: + viter-next = __vmw_piter_non_sg_next; + viter-dma_address = __vmw_piter_phys_addr; + viter-page = __vmw_piter_non_sg_page; + viter-pages = vsgt-pages; + break; + case vmw_dma_alloc_coherent: + viter-next = __vmw_piter_non_sg_next; + viter-dma_address = __vmw_piter_dma_addr; + viter-page = __vmw_piter_non_sg_page; + viter-addrs = vsgt-addrs; + break; + case vmw_dma_map_populate: + case vmw_dma_map_bind: + viter-next = __vmw_piter_sg_next; + viter-dma_address = __vmw_piter_sg_addr; + viter-page = __vmw_piter_sg_page; + __sg_page_iter_start(viter-iter, vsgt-sgt-sgl, + vsgt-sgt-orig_nents, p_offset); + break; + default: + BUG(); + } +} + +/** + * vmw_ttm_unmap_from_dma - unmap device addresses previsouly mapped for + * TTM pages + * + * @vmw_tt: Pointer to a struct vmw_ttm_backend + * + * Used to free dma mappings previously mapped by vmw_ttm_map_for_dma. + */ +static void vmw_ttm_unmap_from_dma(struct vmw_ttm_tt *vmw_tt) +{ + struct device *dev = vmw_tt-dev_priv-dev-dev; + + dma_unmap_sg(dev,
Re: [PATCH 2/2] drm/vmwgfx: Use the linux DMA api to get valid device addresses of pages
On Mon, Nov 04, 2013 at 05:57:39AM -0800, Thomas Hellstrom wrote: The code handles three different cases: 1) physical page addresses. The ttm page array is used. 2) DMA subsystem addresses. A scatter-gather list is used. 3) Coherent pages. The ttm dma pool is used, together with the dma_ttm array os dma_addr_t Signed-off-by: Thomas Hellstrom thellst...@vmware.com Reviewed-by: Jakob Bornecrantz ja...@vmware.com For i915.ko use we've added page iterators which should walk the physical backing storage. commit a321e91b6d73ed011ffceed384c40d2785cf723b Author: Imre Deak imre.d...@intel.com Date: Wed Feb 27 17:02:56 2013 -0800 lib/scatterlist: add simple page iterator Now we've unified all our backing storage handling around sg tables (even for stolen memory), so maybe that's not useful for you guys. Just figured I'll drop this here, it imo made our code look fairly tidy. Cheers, Daniel --- drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 379 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c| 87 +++- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h| 98 - drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c| 150 ++--- 4 files changed, 620 insertions(+), 94 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c index 96dc84d..7776e6f 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c @@ -141,37 +141,374 @@ struct ttm_placement vmw_srf_placement = { }; struct vmw_ttm_tt { - struct ttm_tt ttm; + struct ttm_dma_tt dma_ttm; struct vmw_private *dev_priv; int gmr_id; + struct sg_table sgt; + struct vmw_sg_table vsgt; + uint64_t sg_alloc_size; + bool mapped; }; +/** + * Helper functions to advance a struct vmw_piter iterator. + * + * @viter: Pointer to the iterator. + * + * These functions return false if past the end of the list, + * true otherwise. Functions are selected depending on the current + * DMA mapping mode. + */ +static bool __vmw_piter_non_sg_next(struct vmw_piter *viter) +{ + return ++(viter-i) viter-num_pages; +} + +static bool __vmw_piter_sg_next(struct vmw_piter *viter) +{ + return __sg_page_iter_next(viter-iter); +} + + +/** + * Helper functions to return a pointer to the current page. + * + * @viter: Pointer to the iterator + * + * These functions return a pointer to the page currently + * pointed to by @viter. Functions are selected depending on the + * current mapping mode. + */ +static struct page *__vmw_piter_non_sg_page(struct vmw_piter *viter) +{ + return viter-pages[viter-i]; +} + +static struct page *__vmw_piter_sg_page(struct vmw_piter *viter) +{ + return sg_page_iter_page(viter-iter); +} + + +/** + * Helper functions to return the DMA address of the current page. + * + * @viter: Pointer to the iterator + * + * These functions return the DMA address of the page currently + * pointed to by @viter. Functions are selected depending on the + * current mapping mode. + */ +static dma_addr_t __vmw_piter_phys_addr(struct vmw_piter *viter) +{ + return page_to_phys(viter-pages[viter-i]); +} + +static dma_addr_t __vmw_piter_dma_addr(struct vmw_piter *viter) +{ + return viter-addrs[viter-i]; +} + +static dma_addr_t __vmw_piter_sg_addr(struct vmw_piter *viter) +{ + return sg_page_iter_dma_address(viter-iter); +} + + +/** + * vmw_piter_start - Initialize a struct vmw_piter. + * + * @viter: Pointer to the iterator to initialize + * @vsgt: Pointer to a struct vmw_sg_table to initialize from + * + * Note that we're following the convention of __sg_page_iter_start, so that + * the iterator doesn't point to a valid page after initialization; it has + * to be advanced one step first. + */ +void vmw_piter_start(struct vmw_piter *viter, const struct vmw_sg_table *vsgt, + unsigned long p_offset) +{ + viter-i = p_offset - 1; + viter-num_pages = vsgt-num_pages; + switch (vsgt-mode) { + case vmw_dma_phys: + viter-next = __vmw_piter_non_sg_next; + viter-dma_address = __vmw_piter_phys_addr; + viter-page = __vmw_piter_non_sg_page; + viter-pages = vsgt-pages; + break; + case vmw_dma_alloc_coherent: + viter-next = __vmw_piter_non_sg_next; + viter-dma_address = __vmw_piter_dma_addr; + viter-page = __vmw_piter_non_sg_page; + viter-addrs = vsgt-addrs; + break; + case vmw_dma_map_populate: + case vmw_dma_map_bind: + viter-next = __vmw_piter_sg_next; + viter-dma_address = __vmw_piter_sg_addr; + viter-page = __vmw_piter_sg_page; + __sg_page_iter_start(viter-iter, vsgt-sgt-sgl, + vsgt-sgt-orig_nents, p_offset); + break; + default:
Re: [PATCH 2/2] drm/vmwgfx: Use the linux DMA api to get valid device addresses of pages
On 11/04/2013 05:27 PM, Daniel Vetter wrote: On Mon, Nov 04, 2013 at 05:57:39AM -0800, Thomas Hellstrom wrote: The code handles three different cases: 1) physical page addresses. The ttm page array is used. 2) DMA subsystem addresses. A scatter-gather list is used. 3) Coherent pages. The ttm dma pool is used, together with the dma_ttm array os dma_addr_t Signed-off-by: Thomas Hellstrom thellst...@vmware.com Reviewed-by: Jakob Bornecrantz ja...@vmware.com For i915.ko use we've added page iterators which should walk the physical backing storage. commit a321e91b6d73ed011ffceed384c40d2785cf723b Author: Imre Deak imre.d...@intel.com Date: Wed Feb 27 17:02:56 2013 -0800 lib/scatterlist: add simple page iterator Yes, I saw those iterators, (nice stuff!) and my patch are using them as a base class, handling also TTM page - and dma address arrays basically with the same interface. In the long run we might want to move ttm over to sg_tables as well. One problem, though, the page iterators break in the mapped case where sg_dma_len(sg) != sg_len(sg). An iommu implementation is allowed to reduce the sg list to a single segment, in which case those page iterators will fall apart. I was planning to see if I could fix that up, but unfortunately there is no generic dma_to_phys. It all works now because intel_iommu, amd_iommu and swiotlb all keep the number of entries in an sg list across mapping /Thomas -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 0/2] Make the vmwgfx driver reasonably DMA-API compliant
On 11/04/2013 05:30 PM, Konrad Rzeszutek Wilk wrote: On Mon, Nov 04, 2013 at 05:57:37AM -0800, Thomas Hellstrom wrote: These patches makes the vmwgfx driver use the DMA API to obtain valid device addresses rather than blindly using physical addresses. The main motivation is to be able to use a virtual IOMMU in the future. Ooooh. Neat! Are there any RFC patches available? Nope, not yet. Thanks, Thomas -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 1/2] drm/ttm: Enable the dma page pool also for intel IOMMUs
On 11/04/2013 05:34 PM, Konrad Rzeszutek Wilk wrote: On Mon, Nov 04, 2013 at 05:57:38AM -0800, Thomas Hellstrom wrote: Used by the vmwgfx driver That looks OK to me. And baremetal should not be affected as the Intel VT-d driver turns of the SWIOTLB driver - so it will still use the classic ttm pool code. Reviewed-by: Konrad Rzeszutek Wilk konrad.w...@oracle.com Thanks for reviewing, Konrad. /Thomas -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 2/2] drm/vmwgfx: Use the linux DMA api to get valid device addresses of pages
On 11/04/2013 05:40 PM, Konrad Rzeszutek Wilk wrote: On Mon, Nov 04, 2013 at 05:57:39AM -0800, Thomas Hellstrom wrote: The code handles three different cases: 1) physical page addresses. The ttm page array is used. 2) DMA subsystem addresses. A scatter-gather list is used. 3) Coherent pages. The ttm dma pool is used, together with the dma_ttm array os dma_addr_t Signed-off-by: Thomas Hellstrom thellst...@vmware.com Reviewed-by: Jakob Bornecrantz ja...@vmware.com I looked at it from the TTM DMA perspective and it looks OK for me. Great. Thanks, Thomas -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [Mesa3d-dev] [PATCH 3/6] dri/intel: Add explicit size parameter to intel_region_alloc_for_fd
On 10/31/2013 04:13 PM, Keith Packard wrote: Instead of assuming that the size will be height * pitch, have the caller pass in the size explicitly. Signed-off-by: Keith Packard kei...@keithp.com One nit below. With that changed, Reviewed-by: Ian Romanick ian.d.roman...@intel.com --- src/mesa/drivers/dri/i915/intel_regions.c | 4 ++-- src/mesa/drivers/dri/i915/intel_regions.h | 2 +- src/mesa/drivers/dri/i915/intel_screen.c | 2 +- src/mesa/drivers/dri/i965/intel_regions.c | 4 ++-- src/mesa/drivers/dri/i965/intel_regions.h | 1 + src/mesa/drivers/dri/i965/intel_screen.c | 2 +- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/mesa/drivers/dri/i915/intel_regions.c b/src/mesa/drivers/dri/i915/intel_regions.c index 44f7030..9f5b89e 100644 --- a/src/mesa/drivers/dri/i915/intel_regions.c +++ b/src/mesa/drivers/dri/i915/intel_regions.c @@ -209,6 +209,7 @@ struct intel_region * intel_region_alloc_for_fd(struct intel_screen *screen, GLuint cpp, GLuint width, GLuint height, GLuint pitch, + GLuint size, int fd, const char *name) { struct intel_region *region; @@ -216,8 +217,7 @@ intel_region_alloc_for_fd(struct intel_screen *screen, int ret; uint32_t bit_6_swizzle, tiling; - buffer = drm_intel_bo_gem_create_from_prime(screen-bufmgr, - fd, height * pitch); + buffer = drm_intel_bo_gem_create_from_prime(screen-bufmgr, fd, size); if (buffer == NULL) return NULL; ret = drm_intel_bo_get_tiling(buffer, tiling, bit_6_swizzle); diff --git a/src/mesa/drivers/dri/i915/intel_regions.h b/src/mesa/drivers/dri/i915/intel_regions.h index 5c612a9..6bc4a42 100644 --- a/src/mesa/drivers/dri/i915/intel_regions.h +++ b/src/mesa/drivers/dri/i915/intel_regions.h @@ -91,7 +91,7 @@ struct intel_region * intel_region_alloc_for_fd(struct intel_screen *screen, GLuint cpp, GLuint width, GLuint height, GLuint pitch, - int fd, const char *name); + GLuint size, int fd, const char *name); bool intel_region_flink(struct intel_region *region, uint32_t *name); diff --git a/src/mesa/drivers/dri/i915/intel_screen.c b/src/mesa/drivers/dri/i915/intel_screen.c index 3f54752..085e894 100644 --- a/src/mesa/drivers/dri/i915/intel_screen.c +++ b/src/mesa/drivers/dri/i915/intel_screen.c @@ -653,7 +653,7 @@ intel_create_image_from_fds(__DRIscreen *screen, return NULL; image-region = intel_region_alloc_for_fd(intelScreen, - 1, width, height, + 1, width, height, height * strides[0], strides[0], fds[0], image); if (image-region == NULL) { free(image); diff --git a/src/mesa/drivers/dri/i965/intel_regions.c b/src/mesa/drivers/dri/i965/intel_regions.c index a6b80fd..3920f4f 100644 --- a/src/mesa/drivers/dri/i965/intel_regions.c +++ b/src/mesa/drivers/dri/i965/intel_regions.c @@ -209,6 +209,7 @@ struct intel_region * intel_region_alloc_for_fd(struct intel_screen *screen, GLuint cpp, GLuint width, GLuint height, GLuint pitch, + GLuint size, int fd, const char *name) { struct intel_region *region; @@ -216,8 +217,7 @@ intel_region_alloc_for_fd(struct intel_screen *screen, int ret; uint32_t bit_6_swizzle, tiling; - buffer = drm_intel_bo_gem_create_from_prime(screen-bufmgr, - fd, height * pitch); + buffer = drm_intel_bo_gem_create_from_prime(screen-bufmgr, fd, size); if (buffer == NULL) return NULL; ret = drm_intel_bo_get_tiling(buffer, tiling, bit_6_swizzle); diff --git a/src/mesa/drivers/dri/i965/intel_regions.h b/src/mesa/drivers/dri/i965/intel_regions.h index f08a113..05dfef3 100644 --- a/src/mesa/drivers/dri/i965/intel_regions.h +++ b/src/mesa/drivers/dri/i965/intel_regions.h @@ -92,6 +92,7 @@ struct intel_region * intel_region_alloc_for_fd(struct intel_screen *screen, GLuint cpp, GLuint width, GLuint height, GLuint pitch, + GLuint size, Since this isn't exposed to the GL API, use either unsigned or size_t. int fd, const char *name); bool diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c index eafafa2..0bd0789 100644 --- a/src/mesa/drivers/dri/i965/intel_screen.c +++ b/src/mesa/drivers/dri/i965/intel_screen.c @@ -712,7 +712,7 @@ intel_create_image_from_fds(__DRIscreen *screen, return NULL; image-region =
Re: Quick question on DCE8 (HD7770?)
On Qua, 2013-07-31 at 08:25 +0200, Rafał Miłecki wrote: HI guys, I'm looking for the cheapest DCE8 GPU. I know there are 3 (engineering) families using DCE8: KAVERI, BONAIRE and KABINI. The only GPU I know should be DCE8 is HD7790 (not even sure which engineering family is that). Unfortunately it costs over 120€ here. Is there any other DCE8 card available on the market and (hopefully) cheaper thatn HD7790? Any chance HD7770 is also DCE8? Hi, DRI devel mailing list have been move to dri-de...@lists.freedesktop.org you may want post your question there . Best regards, -- Sérgio M. B. -- Get your SQL database under version control now! Version control is standard for application code, but databases havent caught up. So what steps can you take to put your SQL databases under version control? Why should you start doing it? Read more to find out. http://pubads.g.doubleclick.net/gampad/clk?id=49501711iu=/4140/ostg.clktrk -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Quick question on DCE8 (HD7770?)
2013/8/1 Sérgio Basto ser...@serjux.com: Hi, DRI devel mailing list have been move to dri-de...@lists.freedesktop.org you may want post your question there . Thanks, I already did: http://lists.freedesktop.org/archives/dri-devel/2013-July/042583.html -- Rafał -- Get your SQL database under version control now! Version control is standard for application code, but databases havent caught up. So what steps can you take to put your SQL databases under version control? Why should you start doing it? Read more to find out. http://pubads.g.doubleclick.net/gampad/clk?id=49501711iu=/4140/ostg.clktrk -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] fbcon: fix locking harder
On Thu, Jan 24, 2013 at 8:43 PM, Dave Airlie airl...@gmail.com wrote: Okay so Alan's patch handled the case where there was no registered fbcon, however the other path entered in set_con2fb_map pit. In there we called fbcon_takeover, but we also took the console lock in a couple of places. So push the console lock out to the callers of set_con2fb_map, this means fbmem and switcheroo needed to take the lock around the fb notifier entry points that lead to this. This should fix the efifb regression seen by Maarten. Signed-off-by: Dave Airlie airl...@redhat.com Linus might not be taking this for 3.8 because of lack of testing, but that doesn't mean the problems don't exist in 3.8 (and older). Maybe throw a CC for stable on the patch? That way it works its way back when it does get merged. josh -- Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] fbcon: fix locking harder
On Fri, Jan 25, 2013 at 2:43 AM, Dave Airlie airl...@gmail.com wrote: Okay so Alan's patch handled the case where there was no registered fbcon, however the other path entered in set_con2fb_map pit. In there we called fbcon_takeover, but we also took the console lock in a couple of places. So push the console lock out to the callers of set_con2fb_map, this means fbmem and switcheroo needed to take the lock around the fb notifier entry points that lead to this. This should fix the efifb regression seen by Maarten. Signed-off-by: Dave Airlie airl...@redhat.com --- drivers/gpu/vga/vga_switcheroo.c | 3 +++ drivers/video/console/fbcon.c| 11 --- drivers/video/fbmem.c| 2 ++ 3 files changed, 13 insertions(+), 3 deletions(-) [cut] ret = vgasr_priv.handler-switchto(new_client-id); diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index 2aef9ca..2e2d959 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c @@ -842,6 +842,8 @@ static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, * * Maps a virtual console @unit to a frame buffer device * @newidx. + * + * This should be called with the console lock held. */ static int set_con2fb_map(int unit, int newidx, int user) { What about throwing a WARN_CONSOLE_UNLOCKED(); in here to make sure this new rule is obeyed? -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch -- Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm i915 hangs on heavy io load
(please Cc) I am running 3.7-rc2 and got recently hit a few times (under rc1, too) by hanging drm i915 while doing large io operations. Does booting with i915.i915_enable_rc6=0 help? (Daniel, looks like an ironlake). Dave. -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_sfd2d_oct -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Changes to 'debian-experimental'
On Mon, Sep 10, 2012 at 1:27 AM, Michel Dänzer mic...@daenzer.net wrote: On Son, 2012-09-09 at 15:33 -0700, Jordan Justen wrote: New branch 'debian-experimental' available with the following commits: I think you pushed this to the wrong repository? My apologies. I had the hook script mis-configured under my personal repo. I don't think the main drm repo was modified. -Jordan -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Changes to 'debian-experimental'
On Son, 2012-09-09 at 15:33 -0700, Jordan Justen wrote: New branch 'debian-experimental' available with the following commits: I think you pushed this to the wrong repository? -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] fbcon: fix race condition between console lock and cursor timer
On Tue, 2012-08-21 at 10:15 +0100, Alan Cox wrote: So after much tracing with direct netconsole writes (printks under console_lock not so useful), I think I found the race. Direct netconsole write would be a useful patch to have mainline I think 8) could we make that use the earlyprintk infrastructure? -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] fbcon: fix race condition between console lock and cursor timer
On Tue, Aug 21, 2012 at 2:40 AM, Dave Airlie airl...@redhat.com wrote: So we've had a fair few reports of fbcon handover breakage between efi/vesafb and i915 surface recently, so I dedicated a couple of days to finding the problem. Essentially the last thing we saw was the conflicting framebuffer message and that was all. So after much tracing with direct netconsole writes (printks under console_lock not so useful), I think I found the race. Thread A (driver load)Thread B (timer thread) unbind_con_driver - | bind_con_driver -| vc-vc_sw-con_deinit - | fbcon_deinit - | console_lock()| | | | fbcon_flashcursor timer fires | console_lock() - blocked for A | | fbcon_del_cursor_timer - del_timer_sync (BOOM) Of course because all of this is under the console lock, we never see anything, also since we also just unbound the active console guess what we never see anything. Hopefully this fixes the problem for anyone seeing vesafb-kms driver handoff. Signed-off-by: David Airlie airl...@redhat.com --- drivers/video/console/fbcon.c |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index 2e471c2..f8a79fc 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c @@ -372,8 +372,12 @@ static void fb_flashcursor(struct work_struct *work) struct vc_data *vc = NULL; int c; int mode; + int ret; + + ret = console_trylock(); + if (ret == 0) + return; - console_lock(); if (ops ops-currcon != -1) vc = vc_cons[ops-currcon].d; I have a Dell XPS 8300 machine with a Radeon card in it that started showing this problem yesterday with 3.6-rc2 kernels. I tested this patch on top of v3.6-rc2-206-g10c63c9 this morning and the problem seems to have been cleared up for me. That includes making sure the grub2 file has the gfxterm set, etc. I know we've been seeing this quite a bit more on Fedora 17, so we'll want to have some people test a 3.5 build with it but things are looking better. josh -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] fbcon: fix race condition between console lock and cursor timer
On Tue, Aug 21, 2012 at 7:15 PM, Alan Cox a...@lxorguk.ukuu.org.uk wrote: So after much tracing with direct netconsole writes (printks under console_lock not so useful), I think I found the race. Direct netconsole write would be a useful patch to have mainline I think 8) Well I used a one line wrapper around the netconsole write_msg, which just passed NULL as the first arg, then sprinkled netconsole_write_msg around the place, not having printf stuff could be an annoyance for some people, for this it didn't matter. Peter I wish I had a serial port to work with :-) Not really the proper fix but its clear and is probably the best thing to go in initially with a cc: stable. Can you at least stick a large + /* FIXME: we should sort out the unbind locking instead */ Done, and cc stable, I'll send this to Linus via my tree as its fairly urgent from my pov. Dave. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Branch 'master' - 5 commits
On Thu, Apr 5, 2012 at 4:21 PM, Ville Syrjälä syrj...@sci.fi wrote: On Tue, Apr 03, 2012 at 02:50:01PM -0700, Rob Clark wrote: + /* just testing a limited # of formats to test single + * and multi-planar path.. would be nice to add more.. + */ + if (!strcmp(p-format_str, YUYV)) { + pitches[0] = p-w * 2; + offsets[0] = 0; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]); + + fill422(virtual, 0, p-w, p-h, pitches[0]); + + format = DRM_FORMAT_YUYV; + } else if (!strcmp(p-format_str, NV12)) { + pitches[0] = p-w; + offsets[0] = 0; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]); + pitches[1] = p-w; + offsets[1] = p-w * p-h; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]); + + fill420(virtual, virtual+offsets[1], virtual+offsets[1]+1, + 2, 0, p-w, p-h, pitches[0]); + + format = DRM_FORMAT_NV12; + } else if (!strcmp(p-format_str, YV12)) { + pitches[0] = p-w; + offsets[0] = 0; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]); + pitches[1] = p-w / 2; + offsets[1] = p-w * p-h; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]); + pitches[2] = p-w / 2; + offsets[2] = offsets[1] + (p-w * p-h) / 4; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]); ^ Should be '2'. The kernel patch I just posted might have caught this. OTOH it might not have in case handles[2] contains uninitialized data. Good catch, I can push a fix. If you already have a patch, please send, otherwise I'll just go ahead and fix it myself. fwiw, on omap4xxx we only support 1 and 2 plane formats, so 3 plane was untested.. but I wanted to push the test at least so we could have some common test code between the different platforms and catch any potential mismatches in understanding (for ex. the src coords in 16.16 format vs integer) We should add a test that would make sure that passing an invalid bo handle for any plane would return with an error. The problem is knowing what exactly is an invalid handle since it's all driver specific. Perhaps 0x would be a reasonably safe choice. Hmm, now I wonder if 0 might actually be a valid handle for some of the current drivers... I guess *nearly* everyone uses GEM? I suppose we could have a validate_handle fxn ptr w/ a default drm_gem_validate_handle() helper that any of the drivers using GEM could use. I'm not sure if that is just overkill (since the drm_gem_object_lookup() would anyways fail in the driver part). On the other hand moving something like the objects_lookup() helper in omapdrm into core gem code might not be a bad idea. This way each driver isn't having to handle the cleanup when it gets only part way thru object lookup when it encounters an invalid handle. There should obviously also be a test that does use separate bos for reach plane. That should either succeed and produce the correct result, or the driver should respond with an error at least to the setplane ioctl. Whether it would allow addfb2 to succeed is a slightly more complicated matter. I suppose it could be possible that on some odd hardware some planes would support multiple bos and some would not. In which case the driver would need to allow the addfb2. Yeah, there certainly is room for more tests, especially because there are so many possible permutations. Possibly we should split out into 'planetest' before modetest gets too big? Anyways, I figured at least one basic test was better than zero ;-) BR, -R -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ -- Better than sec? Nothing is better than sec when it comes to monitoring Big Data applications. Try Boundary one-second resolution app monitoring today. Free. http://p.sf.net/sfu/Boundary-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel ___ dri-devel mailing list dri-de...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel -- For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 --
Re: drm: Branch 'master' - 5 commits
On Tue, Apr 03, 2012 at 02:50:01PM -0700, Rob Clark wrote: + /* just testing a limited # of formats to test single + * and multi-planar path.. would be nice to add more.. + */ + if (!strcmp(p-format_str, YUYV)) { + pitches[0] = p-w * 2; + offsets[0] = 0; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]); + + fill422(virtual, 0, p-w, p-h, pitches[0]); + + format = DRM_FORMAT_YUYV; + } else if (!strcmp(p-format_str, NV12)) { + pitches[0] = p-w; + offsets[0] = 0; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]); + pitches[1] = p-w; + offsets[1] = p-w * p-h; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]); + + fill420(virtual, virtual+offsets[1], virtual+offsets[1]+1, + 2, 0, p-w, p-h, pitches[0]); + + format = DRM_FORMAT_NV12; + } else if (!strcmp(p-format_str, YV12)) { + pitches[0] = p-w; + offsets[0] = 0; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[0]); + pitches[1] = p-w / 2; + offsets[1] = p-w * p-h; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]); + pitches[2] = p-w / 2; + offsets[2] = offsets[1] + (p-w * p-h) / 4; + kms_bo_get_prop(plane_bo, KMS_HANDLE, handles[1]); ^ Should be '2'. The kernel patch I just posted might have caught this. OTOH it might not have in case handles[2] contains uninitialized data. We should add a test that would make sure that passing an invalid bo handle for any plane would return with an error. The problem is knowing what exactly is an invalid handle since it's all driver specific. Perhaps 0x would be a reasonably safe choice. Hmm, now I wonder if 0 might actually be a valid handle for some of the current drivers... There should obviously also be a test that does use separate bos for reach plane. That should either succeed and produce the correct result, or the driver should respond with an error at least to the setplane ioctl. Whether it would allow addfb2 to succeed is a slightly more complicated matter. I suppose it could be possible that on some odd hardware some planes would support multiple bos and some would not. In which case the driver would need to allow the addfb2. -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ -- Better than sec? Nothing is better than sec when it comes to monitoring Big Data applications. Try Boundary one-second resolution app monitoring today. Free. http://p.sf.net/sfu/Boundary-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: regression(?) 3.3-rc4 - 3.3-rc5: drm intel hangs
Dear Norbert, Am Dienstag, den 28.02.2012, 13:03 +0900 schrieb Norbert Preining: Dear all, (please Cc) since upgrade to 3.3-rc5 I see the following behaviour repeatedly: Feb 28 11:42:47 mithrandir kernel: [15627.756071] [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung Feb 28 11:42:47 mithrandir kernel: [15627.756087] [drm] capturing error event; look for more information in /debug/dri/0/i915_error_state Feb 28 11:42:47 mithrandir kernel: [15627.758428] [drm:i915_wait_request] *ERROR* i915_wait_request returns -11 (awaiting 7 at 4, next 8) Feb 28 11:42:47 mithrandir kernel: [15628.260094] [drm:i915_reset] *ERROR* Failed to reset chip. Is this is known issue? I do not know. But it would be interesting to know if you just see this in your log files or if you also see some effects like screen corruptions. You can increase the log level by adding `drm.debug=0x06` to the Linux kernel command line [1]. […] Thanks, Paul [1] http://intellinuxgraphics.org/how_to_report_bug.html signature.asc Description: This is a digitally signed message part -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d-- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: regression(?) 3.3-rc4 - 3.3-rc5: drm intel hangs
On Tue, Feb 28, 2012 at 4:03 AM, Norbert Preining prein...@logic.at wrote: Dear all, (please Cc) And you haven't changed userspace in any way? Dave. -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: regression(?) 3.3-rc4 - 3.3-rc5: drm intel hangs
On Tue, Feb 28, 2012 at 01:03:27PM +0900, Norbert Preining wrote: Dear all, (please Cc) since upgrade to 3.3-rc5 I see the following behaviour repeatedly: Feb 28 11:42:47 mithrandir kernel: [15627.756071] [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung Feb 28 11:42:47 mithrandir kernel: [15627.756087] [drm] capturing error event; look for more information in /debug/dri/0/i915_error_state Wee need this i915_error_state file from debugfs (you might need to mount that first again) to diagnose gpu hangs. Also, it only contains information after a crash, so you need to rehang your machine if you've rebooted since then. Thanks, Daniel Feb 28 11:42:47 mithrandir kernel: [15627.758428] [drm:i915_wait_request] *ERROR* i915_wait_request returns -11 (awaiting 7 at 4, next 8) Feb 28 11:42:47 mithrandir kernel: [15628.260094] [drm:i915_reset] *ERROR* Failed to reset chip. Is this is known issue? hardware Intel GM45 Chipset more dmesg parts: [0.566805] agpgart-intel :00:00.0: Intel GM45 Chipset [0.566925] agpgart-intel :00:00.0: detected gtt size: 2097152K total, 262144K mappable [0.569079] agpgart-intel :00:00.0: detected 65536K stolen memory [0.569278] agpgart-intel :00:00.0: AGP aperture is 256M @ 0xc000 ... [2.032297] [drm] Initialized drm 1.1.0 20060810 [2.032372] i915 :00:02.0: power state changed by ACPI to D0 [2.032429] i915 :00:02.0: power state changed by ACPI to D0 [2.032489] i915 :00:02.0: setting latency timer to 64 [2.085250] i915 :00:02.0: irq 43 for MSI/MSI-X [2.085260] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010). [2.085318] [drm] Driver supports precise vblank timestamp query. [2.085439] [drm:intel_dsm_pci_probe] *ERROR* failed to get supported _DSM functions [2.085527] vgaarb: device changed decodes: PCI::00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem [2.769842] fbcon: inteldrmfb (fb0) is primary device [2.771391] [drm] Changing LVDS panel from (+hsync, +vsync) to (-hsync, -vsync) [3.304756] Console: switching to colour frame buffer device 200x56 [3.308853] fb0: inteldrmfb frame buffer device [3.308855] drm: registered panic notifier [3.329552] acpi device:01: registered as cooling_device2 [3.329713] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input2 [3.329766] ACPI: Video Device [OVGA] (multi-head: yes rom: no post: no) [3.329881] [drm] Initialized i915 1.6.0 20080730 for :00:02.0 on minor 0 Best wishes Norbert Norbert Preiningpreining@{jaist.ac.jp, logic.at, debian.org} JAIST, Japan TeX Live Debian Developer DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094 LUPPITT (n.) The piece of leather which hangs off the bottom of your shoe before you can be bothered to get it mended. --- Douglas Adams, The Meaning of Liff -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel ___ dri-devel mailing list dri-de...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Mail: dan...@ffwll.ch Mobile: +41 (0)79 365 57 48 -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Branch 'master' - 2 commits
On Mon, 05 Dec 2011 14:23:55 -0800, Eric Anholt e...@anholt.net wrote: On Mon, 5 Dec 2011 02:31:58 -0800 (PST), ic...@kemper.freedesktop.org (Chris Wilson) wrote: configure.ac |2 +- intel/intel_bufmgr_gem.c | 27 +-- 2 files changed, 22 insertions(+), 7 deletions(-) New commits: commit e73161a02b604742e3da3bca8f13cff81276de43 Author: Chris Wilson ch...@chris-wilson.co.uk Date: Mon Dec 5 10:30:52 2011 + configure: Bump version to 2.4.28 So that we can pull a couple of Intel bug fixes into xf86-video-intel. Signed-off-by: Chris Wilson ch...@chris-wilson.co.uk Performance before: [ 0] glfirefox-talos-gfx 17.866 17.915 0.14%4/4 after: [ 0] glfirefox-talos-gfx 22.173 22.251 0.20%4/4 There's a pretty obvious opportunity to keep the performance win of the userspace caching that you've broken here, but you gave none of us a chance to review it before you pushed the patch *and shipped a release with it*. This is not acceptable. Please revert and bump the release, and fix it correctly. No, what was unacceptable was a vma leak impacting a critical system application, and for the library API to be broken by design. The onus is to improve performance without regressing system stability, not the other way around. -Chris -- Chris Wilson, Intel Open Source Technology Centre -- Cloud Services Checklist: Pricing and Packaging Optimization This white paper is intended to serve as a reference, checklist and point of discussion for anyone considering optimizing the pricing and packaging model of a cloud services business. Read Now! http://www.accelacomm.com/jaw/sfnl/114/51491232/ -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Branch 'master' - 2 commits
On Mon, 5 Dec 2011 02:31:58 -0800 (PST), ic...@kemper.freedesktop.org (Chris Wilson) wrote: configure.ac |2 +- intel/intel_bufmgr_gem.c | 27 +-- 2 files changed, 22 insertions(+), 7 deletions(-) New commits: commit e73161a02b604742e3da3bca8f13cff81276de43 Author: Chris Wilson ch...@chris-wilson.co.uk Date: Mon Dec 5 10:30:52 2011 + configure: Bump version to 2.4.28 So that we can pull a couple of Intel bug fixes into xf86-video-intel. Signed-off-by: Chris Wilson ch...@chris-wilson.co.uk Performance before: [ 0] glfirefox-talos-gfx 17.866 17.915 0.14%4/4 after: [ 0] glfirefox-talos-gfx 22.173 22.251 0.20%4/4 There's a pretty obvious opportunity to keep the performance win of the userspace caching that you've broken here, but you gave none of us a chance to review it before you pushed the patch *and shipped a release with it*. This is not acceptable. Please revert and bump the release, and fix it correctly. pgpAEuNpy2UG9.pgp Description: PGP signature -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d-- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: linux-next: Tree for Nov 29 (drm)
On 11/28/2011 08:20 PM, Stephen Rothwell wrote: Hi all, Changes since 2028: The drm tree lost its build failure but gained another for which I applied a patch. ERROR: drm_helper_get_fb_bpp_depth [drivers/gpu/drm/vmwgfx/vmwgfx.ko] undefined! Full x86_64 randconfig file is attached. -- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** # # Automatically generated file; DO NOT EDIT. # Linux/x86_64 3.2.0-rc3 Kernel Configuration # CONFIG_64BIT=y # CONFIG_X86_32 is not set CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT=elf64-x86-64 CONFIG_ARCH_DEFCONFIG=arch/x86/configs/x86_64_defconfig CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y # CONFIG_ZONE_DMA is not set CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_GPIO=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ZONE_DMA32=y CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_ARCH_HWEIGHT_CFLAGS=-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11 # CONFIG_KTIME_SCALAR is not set CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE= CONFIG_LOCALVERSION= # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set CONFIG_KERNEL_XZ=y # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME=(none) CONFIG_SYSVIPC=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_FHANDLE=y CONFIG_HAVE_GENERIC_HARDIRQS=y # # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # # RCU Subsystem # CONFIG_TINY_PREEMPT_RCU=y CONFIG_PREEMPT_RCU=y # CONFIG_RCU_TRACE is not set # CONFIG_TREE_RCU_TRACE is not set CONFIG_RCU_BOOST=y CONFIG_RCU_BOOST_PRIO=1 CONFIG_RCU_BOOST_DELAY=500 CONFIG_IKCONFIG=m # CONFIG_IKCONFIG_PROC is not set CONFIG_LOG_BUF_SHIFT=17 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # CONFIG_CGROUPS is not set CONFIG_NAMESPACES=y # CONFIG_UTS_NS is not set # CONFIG_IPC_NS is not set CONFIG_USER_NS=y # CONFIG_PID_NS is not set # CONFIG_SCHED_AUTOGROUP is not set CONFIG_RELAY=y # CONFIG_BLK_DEV_INITRD is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_ANON_INODES=y CONFIG_EXPERT=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y # CONFIG_ELF_CORE is not set # CONFIG_PCSPKR_PLATFORM is not set CONFIG_HAVE_PCSPKR_PLATFORM=y # CONFIG_BASE_FULL is not set # CONFIG_FUTEX is not set CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y # CONFIG_SHMEM is not set # CONFIG_AIO is not set # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y # # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y # CONFIG_PERF_COUNTERS is not set CONFIG_DEBUG_PERF_USE_VMALLOC=y CONFIG_VM_EVENT_COUNTERS=y # CONFIG_PCI_QUIRKS is not set # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y CONFIG_OPROFILE=m CONFIG_OPROFILE_EVENT_MULTIPLEX=y CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y CONFIG_KPROBES=y # CONFIG_JUMP_LABEL is not set CONFIG_UPROBES=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_KRETPROBES=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y
Re: Question about Radeon 5450
Hi, today I upgraded from Radeon X700 to HD6570. It works very well on my Fedora 15/x86_64. Thank you very much to everyone working on the new Radeon driver generations. Best regards, Zoltán Böszörményi 2010-02-06 19:55 keltezéssel, Corbin Simpson írta: Not yet. Work is in progress. Posting from a mobile, pardon my terseness. ~ C. On Feb 6, 2010 10:27 AM, Zoltan Boszormenyi zbos...@dunaweb.hu mailto:zbos...@dunaweb.hu wrote: Hi, I would like to ask whether current Mesa and xf86-drv-ati supports the new low cost, passively cooled Radeon 5450? Thanks in advance, Zoltán Böszörményi -- The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net mailto:Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel -- The demand for IT networking professionals continues to grow, and the demand for specialized networking skills is growing even more rapidly. Take a complimentary Learning@Cisco Self-Assessment and learn about Cisco certifications, training, and career opportunities. http://p.sf.net/sfu/cisco-dev2dev-- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Regression in panic
On Mon, 20 Jun 2011, Mandeep Singh Baines wrote: Hi Dave, I think this change is causing a regression I'm seeing in panic. Before this change, I'd get a reboot on panic (we've configured as such). With this change, my machine gets wedged if the machine is running in X when the panic occurs. I traced the code flow to this: bust_spinlocks(0); -unblank_screen(); -do_unblank_screen(0); -vc-vc_sw-con_blank(vc, 0, 0); -fbcon_blank(vc, 0, 0); -update_screen(vc); -redraw_screen(vc, 0); -vc-vc_sw-con_switch(vc); -fbcon_switch(vc); -ops-update_start(info); -bit_update_start(info); -fb_pan_display(info, ops-var); -info-fbops-fb_pan_display(var, info); -drm_fb_helper_pan_display(var, info); -mutex_lock(dev-mode_config.mutex); *this blocks* With this change, there is now a lot going on in the panic path. Stuff that I'm not sure is safe when panicking. In addition to the mutex_lock, there is also a del_timer_sync() now happening in the context of panic(). I see this bug with a 2.6.38 kernel but did a quick scan of a newer kernels and did not see anything that changed in this path so I suspect its still there. Reverting this change fixes the regression. Chris Fowler reports something similar when running 2.6.38 by inducing a kernel panic via the oom killer -- see http://marc.info/?l=linux-kernelm=130805985022791. I've added him to the cc so he can participate in the thread and cherry-pick any fixes (last status update was that he was going to be trying 2.6.38.8). -- EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Regression in panic
On Mon, Jun 20, 2011 at 4:03 PM, David Rientjes rient...@google.com wrote: On Mon, 20 Jun 2011, Mandeep Singh Baines wrote: Hi Dave, I think this change is causing a regression I'm seeing in panic. Before this change, I'd get a reboot on panic (we've configured as such). With this change, my machine gets wedged if the machine is running in X when the panic occurs. I traced the code flow to this: bust_spinlocks(0); -unblank_screen(); -do_unblank_screen(0); -vc-vc_sw-con_blank(vc, 0, 0); -fbcon_blank(vc, 0, 0); -update_screen(vc); -redraw_screen(vc, 0); -vc-vc_sw-con_switch(vc); -fbcon_switch(vc); -ops-update_start(info); -bit_update_start(info); -fb_pan_display(info, ops-var); -info-fbops-fb_pan_display(var, info); -drm_fb_helper_pan_display(var, info); -mutex_lock(dev-mode_config.mutex); *this blocks* With this change, there is now a lot going on in the panic path. Stuff that I'm not sure is safe when panicking. In addition to the mutex_lock, there is also a del_timer_sync() now happening in the context of panic(). I see this bug with a 2.6.38 kernel but did a quick scan of a newer kernels and did not see anything that changed in this path so I suspect its still there. Reverting this change fixes the regression. Chris Fowler reports something similar when running 2.6.38 by inducing a kernel panic via the oom killer -- see http://marc.info/?l=linux-kernelm=130805985022791. I've added him to the cc so he can participate in the thread and cherry-pick any fixes (last status update was that he was going to be trying 2.6.38.8). One potential fix might be to convert the mutex_lock to a try if oops_in_progress but I suspect oops_in_progress checks may be needed in a bunch of other places in the screen_unblank code path. -- EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: CPU and GPU cache-coherence
On Die, 2011-06-07 at 21:42 +0800, Donnie Fang wrote: 3D render image on WC AGP aperture BO and then CPU fetch the image from this bo, in order to achieve performance, after 3D finished rendering, validate this bo into cached system memory and then read it from system memory. But I always get garbage from there. After check TTM bo validate codes, it has dealt with cache coherence properly, i wonder whether there is something I misunderstand or it is not allowed to move the WC bo from AGP to system memory for reading? Can you post patches showing what you've tried? -- Earthling Michel Dänzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer -- EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: CPU and GPU cache-coherence
On Mit, 2011-06-15 at 16:58 +0200, Michel Dänzer wrote: On Die, 2011-06-07 at 21:42 +0800, Donnie Fang wrote: 3D render image on WC AGP aperture BO and then CPU fetch the image from this bo, in order to achieve performance, after 3D finished rendering, validate this bo into cached system memory and then read it from system memory. But I always get garbage from there. After check TTM bo validate codes, it has dealt with cache coherence properly, i wonder whether there is something I misunderstand or it is not allowed to move the WC bo from AGP to system memory for reading? Can you post patches showing what you've tried? Moving to the new dri-devel list at freedesktop.org, please only follow up there. -- Earthling Michel Dänzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer -- EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [RFC] drm: emit change events when mode config changes
On 04/14/2011 12:42 PM, Jesse Barnes wrote: We've already seen that apps want to monitor the display config, and some (like upowerd) poll for changes since we don't provide a notification for general mode config changes, just hotplug events. So add a new drm event, with CHANGE=1 set in the event, to allow for it. Signed-off-by: Jesse Barnes jbar...@virtuousgeek.org diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 4c95b5f..174ee64 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -1589,6 +1589,8 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, set.fb = fb; ret = crtc-funcs-set_config(set); + drm_sysfs_change_event(dev); + out: kfree(connector_set); mutex_unlock(dev-mode_config.mutex); diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 9507204..df946d4 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -822,6 +822,8 @@ int drm_fb_helper_set_par(struct fb_info *info) return ret; } } + + drm_sysfs_change_event(dev); mutex_unlock(dev-mode_config.mutex); if (fb_helper-delayed_hotplug) { diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c index 2eee8e0..fd3af31 100644 --- a/drivers/gpu/drm/drm_sysfs.c +++ b/drivers/gpu/drm/drm_sysfs.c @@ -467,9 +467,9 @@ EXPORT_SYMBOL(drm_sysfs_connector_remove); * drm_sysfs_hotplug_event - generate a DRM uevent * @dev: DRM device * - * Send a uevent for the DRM device specified by @dev. Currently we only - * set HOTPLUG=1 in the uevent environment, but this could be expanded to - * deal with other types of events. + * Send a uevent for the DRM device specified by @dev. Set HOTPLUG=1 in the + * event to indicate a display config change occurred, probably due to a + * display being added or removed. */ void drm_sysfs_hotplug_event(struct drm_device *dev) { @@ -483,6 +483,24 @@ void drm_sysfs_hotplug_event(struct drm_device *dev) EXPORT_SYMBOL(drm_sysfs_hotplug_event); /** + * drm_sysfs_change_event - generate a DRM uevent indicating a display config change + * @dev: DRM device + * + * Send a uevent for the DRM device specified by @dev. Set CHANGE=1 to + * indicate that a userspace initiated display configuration change occurred. + */ +void drm_sysfs_change_event(struct drm_device *dev) +{ + char *event_string = CHANGE=1; + char *envp[] = { event_string, NULL }; + + DRM_DEBUG(generating hotplug event\n); Should be change event here? + + kobject_uevent_env(dev-primary-kdev.kobj, KOBJ_CHANGE, envp); +} +EXPORT_SYMBOL(drm_sysfs_change_event); + +/** * drm_sysfs_device_add - adds a class device to sysfs for a character driver * @dev: DRM device to be added * @head: DRM head in question diff --git a/include/drm/drmP.h b/include/drm/drmP.h index ad5770f..3aff8fc 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1506,6 +1506,7 @@ extern struct class *drm_sysfs_create(struct module *owner, char *name); extern void drm_sysfs_destroy(void); extern int drm_sysfs_device_add(struct drm_minor *minor); extern void drm_sysfs_hotplug_event(struct drm_device *dev); +extern void drm_sysfs_change_event(struct drm_device *dev); extern void drm_sysfs_device_remove(struct drm_minor *minor); extern char *drm_get_connector_status_name(enum drm_connector_status status); extern int drm_sysfs_connector_add(struct drm_connector *connector); -- Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel ___ dri-devel mailing list dri-de...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [RFC] drm: emit change events when mode config changes
On Fri, 15 Apr 2011 09:23:38 -0500 Chris Bandy cba...@jbandy.com wrote: On 04/14/2011 12:42 PM, Jesse Barnes wrote: /** + * drm_sysfs_change_event - generate a DRM uevent indicating a display config change + * @dev: DRM device + * + * Send a uevent for the DRM device specified by @dev. Set CHANGE=1 to + * indicate that a userspace initiated display configuration change occurred. + */ +void drm_sysfs_change_event(struct drm_device *dev) +{ + char *event_string = CHANGE=1; + char *envp[] = { event_string, NULL }; + + DRM_DEBUG(generating hotplug event\n); Should be change event here? Yeah, I noticed after I sent it out, I think I'll just drop the DRM_DEBUG altogether though. -- Jesse Barnes, Intel Open Source Technology Center -- Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [RFC] drm: emit change events when mode config changes
On 4/14/11 1:42 PM, Jesse Barnes wrote: We've already seen that apps want to monitor the display config, and some (like upowerd) poll for changes since we don't provide a notification for general mode config changes, just hotplug events. So add a new drm event, with CHANGE=1 set in the event, to allow for it. Signed-off-by: Jesse Barnesjbar...@virtuousgeek.org Reviewed-by: Adam Jackson a...@redhat.com - ajax -- Benefiting from Server Virtualization: Beyond Initial Workload Consolidation -- Increasing the use of server virtualization is a top priority.Virtualization can reduce costs, simplify management, and improve application availability and disaster protection. Learn more about boosting the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Lenovo resume from suspends hangs in i915_gpu_busy or so
On Fri, 1 Apr 2011 14:15:11 +0900 Norbert Preining prein...@logic.at wrote: Hi all, adding dri-devel as I found it is actually not completely dead, but hanging in some i915 problem. Copyied from screen: Process ips-adjust ( Stack: ... Call Trace: IRQ ... ? tick_program_event call_sortirq do_softirq irq_exit smp_apic_timer_interrupt apic_timer_interrupt EOI ? _raw_spin_lock i915_gpu_busy ips_adjust ? show_cpu_temp kthread kernel_thread_helper ? kthread_worker_fn ? gs_change Code: ... (once more more or less the same as above) Hm, ok so on resume we're checking GPU busyness, which is normal, but end up hanging on the spinlock? Do you see what scrolls by above the text you took a picture of (probably a task hung message?). Does this happen reliably? Does a previous kernel work ok? -- Jesse Barnes, Intel Open Source Technology Center -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only
https://bugzilla.kernel.org/show_bug.cgi?id=28332 --- Comment #13 from Rafał Miłecki zaj...@gmail.com 2011-03-07 18:45:12 --- I've tried 2.6.37.2, it's free of this bug as well. I had to be some quickly fixed regression I met in wireless-testing. -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- What You Don't Know About Data Connectivity CAN Hurt You This paper provides an overview of data connectivity, details its effect on application quality, and explores various alternative solutions. http://p.sf.net/sfu/progress-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only
https://bugzilla.kernel.org/show_bug.cgi?id=28332 Rafael J. Wysocki r...@sisk.pl changed: What|Removed |Added Status|NEW |RESOLVED Resolution||UNREPRODUCIBLE -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- What You Don't Know About Data Connectivity CAN Hurt You This paper provides an overview of data connectivity, details its effect on application quality, and explores various alternative solutions. http://p.sf.net/sfu/progress-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only
https://bugzilla.kernel.org/show_bug.cgi?id=28332 Rafael J. Wysocki r...@sisk.pl changed: What|Removed |Added Status|RESOLVED|CLOSED -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- What You Don't Know About Data Connectivity CAN Hurt You This paper provides an overview of data connectivity, details its effect on application quality, and explores various alternative solutions. http://p.sf.net/sfu/progress-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only
https://bugzilla.kernel.org/show_bug.cgi?id=28332 --- Comment #12 from Rafał Miłecki zaj...@gmail.com 2011-02-16 23:07:40 --- This does not happen in 2.6.38-rc4. I am not sure about final version of 2.6.37 yet. -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only
https://bugzilla.kernel.org/show_bug.cgi?id=28332 Andrew Morton a...@linux-foundation.org changed: What|Removed |Added CC||a...@linux-foundation.org Component|Video(Other)|Video(DRI - non Intel) AssignedTo|drivers_video-other@kernel- |drivers_video-dri@kernel-bu |bugs.osdl.org |gs.osdl.org -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
[Bug 28332] [RV620] Can not re-enable LVDS after using HDMI only
https://bugzilla.kernel.org/show_bug.cgi?id=28332 Rafael J. Wysocki r...@sisk.pl changed: What|Removed |Added CC||flor...@mickler.org, ||maciej.rute...@gmail.com, ||r...@sisk.pl Blocks||21782 -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are watching the assignee of the bug. -- The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [Bug 21542] Radeon: No 50Hz (PAL) modes available after upgrading to 2.6.36
I finally did the bisect and got this as a result after a lot of rebooting: 139315796778a6d5f67c644e2ff470ddc69efb7b is the first bad commit commit 139315796778a6d5f67c644e2ff470ddc69efb7b Author: Adam Jackson a...@redhat.com Date: Tue Aug 3 14:38:19 2010 -0400 ... Maybe this should be changed to Video(Other) as this probably applies to all graphic cards? Do you need the bisect log? thanx. some time ago i've also noticed i can't set up 50hz modes on various hw. while previously i could, so i can confirm it affects other hw. 50hz modes are esp. usefull on analog LCD screens (slows down pixel clock, so improves sharpness) , slow hw (bit less stress on VRAM), and when using programs like vice , fuse, or other sw. emulating PAL computer with exact refresh rate (i do not know why, but they work much slower and stutter - probably because vblank signal is firing too often, trigering update which could be deferred a bit more). -- -- The modern datacenter depends on network connectivity to access resources and provide services. The best practices for maximizing a physical server's connectivity to a physical network are well understood - see how these rules translate into the virtual world? http://p.sf.net/sfu/oracle-sfdevnlfb -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [RFC PATCH v2] Utilize the PCI API in the TTM framework.
On Thu, Jan 27, 2011 at 10:28:45AM +0100, Thomas Hellstrom wrote: Konrad, Dave Given our previous discussion on the list, I believe these patches shouldn't introduce any regressions in the non-Xen case, however we should probably be prepared to back them out quickly if that turns out to be the case... Absolutly. I've rebased the patches with your review comments (thought I am not seeing the indentation issues in the source code - not sure why?). Stuck the patches on git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git stable/ttm.pci-api.v4 Let me ask some of the radeon drivers to take a look at the radeon/ttm/PCIe: Use dma_addr if TTM has set it. patch. Thank you very much for taking a look at the patches! -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [RFC PATCH v2] Utilize the PCI API in the TTM framework.
Konrad, Dave Given our previous discussion on the list, I believe these patches shouldn't introduce any regressions in the non-Xen case, however we should probably be prepared to back them out quickly if that turns out to be the case... Thanks, Thomas On 01/07/2011 06:11 PM, Konrad Rzeszutek Wilk wrote: Attached is a set of patches that make it possible for drivers using TTM API (nouveau and radeon graphic drivers) to work under Xen. The explanation is a bit complex and I am not sure if I am explaining it that well..so if something is unclear please do ping me. Changes since v1: [https://lkml.org/lkml/2010/12/6/516] - Cleaned up commit message (forgot to add my SoB). Short explanation of problem: What we are hitting under Xen is that instead of programming the GART with the physical DMA address of the TTM page, we end up programming the bounce buffer DMA (bus) address! Long explanation: The reason we end up doing this is that: 1). alloc_page with GFP_DMA32 does not allocate real (Machine Frame Numbers - MFN) under the 4GB in Xen. That is b/c if actually made the pages underneath 4GB available to the the Linux page allocator we would not be able to give those to other guest devices. This would mean if we tried to pass in a USB device to one guest and in another were running the Xorg server we wouldn't be able to do so as we would run out of pages under 4GB. So pages that we get from alloc_page have a PFN that is under 4GB but in reality the real physical address (MFN) is above 4GB. Ugh.. 2). The backends for struct ttm_backend_func utilize the PCI API. When they get a page allocated via alloc_page, the use 'pci_map_page' and program the DMA (bus) address in the GART - which is correct. But then the calls that kick off the graphic driver to process the pages do not use the pci_page_sync_* calls. If the physical address of the page is the same as the DMA bus address returned from pci_map_page then there are no trouble. But if they are different: virt_to_phys(page_address(p)) != pci_map_page(p,..) then the graphic card fetches data from the DMA (bus) address (so the value returned from pci_map_page). The data however that the user wrote to (the page p) ends up being untouched. You are probably saying: What? Nonsense, we stitch the page in ttm_bo_vm_fault using the PFN and .. and even if the virt_to_phys(page_address(p)) != pci_map_page(p) the GART ends up with the bus (DMA) address of the PFN! That is true. But if you combine this with 1) where you end up with page that is above the dma_mask (even if you called it with GFP_DMA32) and then make a call on pci_map_page you would end up with a bounce buffer! The problem above can be easily reproduced on bare-metal if you pass in swiotlb=force iommu=soft. There are two ways of fixing this: 1). Use the 'dma_alloc_coherent' (or pci_alloc_consistent if there is struct pcidev present), instead of alloc_page for GFP_DMA32. The 'dma_alloc_coherent' guarantees that the allocated page fits within the device dma_mask (or uses the default DMA32 if no device is passed in). This also guarantees that any subsequent call to the PCI API for this page will return the same DMA (bus) address as the first call (so pci_alloc_consistent, and then pci_map_page will give the same DMA bus address). 2). Use the pci_sync_range_* after sending a page to the graphics engine. If the bounce buffer is used then we end up copying the pages. 3). This one I really don't want to think about, but I should mention it. Alter the alloc_page and its backend to know about Xen. The pushback from the MM guys will be probably: why not use the PCI API.. So attached is a draft set of patches that use solution #1. I've tested this on baremetal (and Xen) on PCIe Radeon and nouveau cards with success. 1) The 'NULL' when doing dma_alloc_coherent is unsightly. I was toying with modifying the TTM API to pass in 'struct device' or 'struct pci_device' but figured it would make first sense to get your guys input before heading that route. This patch-set is also available at: git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git devel/ttm.pci-api.v3 Konrad Rzeszutek Wilk (5): ttm: Introduce a placeholder for DMA (bus) addresses. tm: Utilize the dma_addr_t array for pages that are to in DMA32 pool. ttm: Expand (*populate) to support an array of DMA addresses. radeon/ttm/PCIe: Use dma_addr if TTM has set it. nouveau/ttm/PCIe: Use dma_addr if TTM has set it. And diffstat: drivers/gpu/drm/nouveau/nouveau_sgdma.c | 31 +++--- drivers/gpu/drm/radeon/radeon.h |4 ++- drivers/gpu/drm/radeon/radeon_gart.c| 36
Re: Please revert nouveau.
On Sun, Jan 16, 2011 at 12:00 PM, Anca Emanuel anca.eman...@gmail.com wrote: In 2.6.37-git5 with the revert, the boot screen is changing the resolution. With this version, it don't. So, can you make a nice report of that - along with 'dmesg' for _both_ cases - to the right people? In this case, that would be at a minimum James, Dave and Ben (added here to the list of people), along with the dri-devel mailing list. ( For people newly added to the cc: the revert in question is the revert of dfe63bb0ad9. It was committed mainline in commit 3632ef89091, but apparently there's still something missing because that isn't sufficient any more ) Linus -- Protect Your Site and Customers from Malware Attacks Learn about various malware tactics and how to avoid them. Understand malware threats, the impact they can have on your business, and how you can protect your company and customers by using code signing. http://p.sf.net/sfu/oracle-sfdevnl -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Please revert nouveau.
On Sun, 2011-01-16 at 12:10 -0800, Linus Torvalds wrote: On Sun, Jan 16, 2011 at 12:00 PM, Anca Emanuel anca.eman...@gmail.com wrote: In 2.6.37-git5 with the revert, the boot screen is changing the resolution. With this version, it don't. So, can you make a nice report of that - along with 'dmesg' for _both_ cases - to the right people? In this case, that would be at a minimum James, Dave and Ben (added here to the list of people), along with the dri-devel mailing list. I've tested a bit here, current git with the revert does appear to work fine for me. Ben. ( For people newly added to the cc: the revert in question is the revert of dfe63bb0ad9. It was committed mainline in commit 3632ef89091, but apparently there's still something missing because that isn't sufficient any more ) Linus -- Protect Your Site and Customers from Malware Attacks Learn about various malware tactics and how to avoid them. Understand malware threats, the impact they can have on your business, and how you can protect your company and customers by using code signing. http://p.sf.net/sfu/oracle-sfdevnl -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Please revert nouveau.
On Sun, Jan 16, 2011 at 3:44 PM, Ben Skeggs bske...@redhat.com wrote: I've tested a bit here, current git with the revert does appear to work fine for me. So Anca has a 8800GT - is that what you're testing? Also, there may be things like FB config issues and/or kernel command line arguments. For example, on the Intel side, we had people who had non-working Intel modesetting because they had VESAFB and the legacy INTELFB enabled. Did some ordering change so that perhaps having VESA enabled took priority and then breaks the accelerated case or something? Linus -- Protect Your Site and Customers from Malware Attacks Learn about various malware tactics and how to avoid them. Understand malware threats, the impact they can have on your business, and how you can protect your company and customers by using code signing. http://p.sf.net/sfu/oracle-sfdevnl -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Please revert nouveau.
On Sun, 2011-01-16 at 15:48 -0800, Linus Torvalds wrote: On Sun, Jan 16, 2011 at 3:44 PM, Ben Skeggs bske...@redhat.com wrote: I've tested a bit here, current git with the revert does appear to work fine for me. So Anca has a 8800GT - is that what you're testing? I don't have an 8800 in the office, testing on a Quadro FX 570M, which is identical from an acceleration standpoint. Also confirmed the revert fixes the same issue on GTX465, and NV44/NV4B (GeForce 6/7 boards). Also, there may be things like FB config issues and/or kernel command line arguments. For example, on the Intel side, we had people who had non-working Intel modesetting because they had VESAFB and the legacy INTELFB enabled. Did some ordering change so that perhaps having VESA enabled took priority and then breaks the accelerated case or something? Not that I can think of, I'll wait until I see Anca's dmesg from after the revert. Ben. Linus -- Protect Your Site and Customers from Malware Attacks Learn about various malware tactics and how to avoid them. Understand malware threats, the impact they can have on your business, and how you can protect your company and customers by using code signing. http://p.sf.net/sfu/oracle-sfdevnl -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [Regression] [PATCH] intel_crt_detect_ddc() seems to be broken for DVI-I
On Thu, 06 Jan 2011 12:11:38 +0100, David Müller (ELSOFT AG) d.muel...@elsoft.ch wrote: The patch below adds an additional check to make sure that there is really an analog device attached (similar to the Mac mini hack in intel_sdvo.c) Nice patch, thanks. I've applied this to my -fixes queue. -Chris -- Chris Wilson, Intel Open Source Technology Centre -- Learn how Oracle Real Application Clusters (RAC) One Node allows customers to consolidate database storage, standardize their database environment, and, should the need arise, upgrade to a full multi-node Oracle RAC database without downtime or disruption http://p.sf.net/sfu/oracle-sfdevnl-- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 1/3] fb: fix overlapping test off-by-one.
On Tue, Dec 21, 2010 at 08:29:03AM +0100, Michel D?nzer wrote: On Die, 2010-12-21 at 11:41 +1000, Dave Airlie wrote: From: Dave Airlie airl...@redhat.com On my system with a radeon x2, the first GPU was not overlapping vesa but the test decided it was. Signed-off-by: Dave Airlie airl...@redhat.com --- drivers/video/fbmem.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c index 0e6aa3d..4ac1201 100644 --- a/drivers/video/fbmem.c +++ b/drivers/video/fbmem.c @@ -1458,7 +1458,7 @@ static bool apertures_overlap(struct aperture *gen, struct aperture *hw) if (gen-base == hw-base) return true; /* is the generic aperture base inside the hw base-hw base+size */ - if (gen-base hw-base gen-base = hw-base + hw-size) + if (gen-base hw-base gen-base hw-base + hw-size) Good catch. Reviewed-by: Michel D??nzer mic...@daenzer.net I'll queue this for .37, thanks. -- Learn how Oracle Real Application Clusters (RAC) One Node allows customers to consolidate database storage, standardize their database environment, and, should the need arise, upgrade to a full multi-node Oracle RAC database without downtime or disruption http://p.sf.net/sfu/oracle-sfdevnl -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 3/3] fbcon: fix situation where fbcon gets deinitialised and can't reinit.
On Tue, Dec 21, 2010 at 11:41:17AM +1000, Dave Airlie wrote: From: Dave Airlie airl...@redhat.com Situation as follow: 2 GPUs + vesafb + kms. GPU 1 is primary, vesafb binds to it as fb0 radeon loads GPU 0 loads as fb1 GPU 1 loads, vesafb gets kicked off which causes fb0 to unbind console, which causes the dummy console to rebind. this means fbcon_deinit gets called, which calls fbcon_exit since the console isn't bound anymore and we set fbcon_has_exited. GPU 1 creates a new fb0 which is primary and we want to be console. fbcon_fb_registered gets called sets the primary up and calls set_con2fb_map, however as fbcon_has_exited is set nothing further ever happens. This patch bypasses the fbcon_has_exited and checks if the console is unbound, if its unbound it calls the fbcon_takeover which calls the vt layer to call the fbcon_startup method and everthing works. Signed-off-by: Dave Airlie airl...@redhat.com This one looks fine, too. This does presumably depend on the change in behaviour introduced by your 2/3 patch though. I'll hold off on applying this until that one gets acked, then we can do this either for the next -rc or for .38. -- Learn how Oracle Real Application Clusters (RAC) One Node allows customers to consolidate database storage, standardize their database environment, and, should the need arise, upgrade to a full multi-node Oracle RAC database without downtime or disruption http://p.sf.net/sfu/oracle-sfdevnl -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH 1/3] fb: fix overlapping test off-by-one.
On Die, 2010-12-21 at 11:41 +1000, Dave Airlie wrote: From: Dave Airlie airl...@redhat.com On my system with a radeon x2, the first GPU was not overlapping vesa but the test decided it was. Signed-off-by: Dave Airlie airl...@redhat.com --- drivers/video/fbmem.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c index 0e6aa3d..4ac1201 100644 --- a/drivers/video/fbmem.c +++ b/drivers/video/fbmem.c @@ -1458,7 +1458,7 @@ static bool apertures_overlap(struct aperture *gen, struct aperture *hw) if (gen-base == hw-base) return true; /* is the generic aperture base inside the hw base-hw base+size */ - if (gen-base hw-base gen-base = hw-base + hw-size) + if (gen-base hw-base gen-base hw-base + hw-size) Good catch. Reviewed-by: Michel Dänzer mic...@daenzer.net -- Earthling Michel Dänzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer -- Lotusphere 2011 Register now for Lotusphere 2011 and learn how to connect the dots, take your collaborative environment to the next level, and enter the era of Social Business. http://p.sf.net/sfu/lotusphere-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: Feedback: BKL / radeon pageflipping patches / DRM Vblank timestamping patches. 1st Try.
Hi Alex, Thanks for the fast reply. I checked again the patches... I have chosen the ones from people.d.o. Kind Regards, - Sedat - On Tue, Oct 26, 2010 at 6:16 PM, Alex Deucher alexdeuc...@gmail.com wrote: On Tue, Oct 26, 2010 at 9:32 AM, Sedat Dilek sedat.di...@googlemail.com wrote: Hi, today, I started with testing DRM Vblank timestamping patches. 1st Try. from Mario in combination with radeon pageflipping patches from Alex together in a non-BKL config Kernel-setup. First some words to my system and hardware: * It's a Debian/sid i386 host with latest dist-upgrades as of today. * My radeon gfxcard is a RV250. [ Linux-kernel ] * Base is a 2.6.36 vanilla Linux-kernel tarball * on top linux-next (next-20101026) with some extra-patches to be able to build a BKL-free Kernel (Thanks Arnd) * on top drm-radeon-testing (up to commit 881fe6c: drm/radeon/kms: properly compute group_size on 6xx/7xx) * Mario's vblank timestamp caching patches (Rev 1 10.10.2010) with some patches to fit linux-next/drm-radeon-testing * Alex's radeon-KMS pageflipping patches for Kernel * For full patch-series see below NOTE: My Linux-kernel has one speciality: It is BigKerneLock-free ! [ DDX (xf66-video-ati) ] * xf86-video-ati from GIT master (up to commit df92245: r100: add some missing bits in SE_COORD_FMT) * on top Alex's radeon-KMS pageflipping patch for DDX NOTE from Alex in [2]: 6xx/7xx/evergreen are pretty solid, but r1xx-r5xx still need some work. Thanks for testing! Please make sure you try the latest pageflipping patches I posted last night: http://lists.freedesktop.org/archives/dri-devel/2010-October/005042.html I've also updated put the latest patches here: http://people.freedesktop.org/~agd5f/pflip/ They work much better on r1xx-r5xx asics. Alex [ Mesa3D ] * it is from GIT master (up to commit 547e761: egl_dri2: Fix a typo that make glFlush be called at wrong time.) [ LibDRM ] * 2.4.22-1 from Debian/experimental [ Xorg-server ] * 2:1.9.0.902-1 from Debian/experimental So, how we know Mario made us happy (BTW, greetings from TUE to TUE)? [ dmesg ] [ 8.195646] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010). --- Driver-date could be changed into more human-readable 10-Oct-2010? What about the fun Alex gives us? [ /var/log/Xorg.0.log ] [ 1797.204] (II) RADEON(0): KMS Pageflipping: enabled INFO: I have attached the full dmesg and a Xorg.log (with logs after having started Eric Anholt's OpenArena benchmark). Above mentionned OA-benchmark drops fps from ~18 down to 13 (new Kernel + new DDX). I have not tested battery performance. My notebook's LVDS has a 1400x1050 resolution, OA was run @1024x768. Can you enlighten a bit on the other mesages in X log? [ /var/log/Xorg.0.log ] ... [ 2069.700] (II) RADEON(0): Allocate new frame buffer 1024x768 stride 1024 Start OpenArena benchmark [ 2069.700] (II) RADEON(0): VRAM usage limit set to 50788K [ 2072.150] (II) RADEON(0): radeon_dri2_schedule_flip:571 fevent[0x849e988] [ 2072.160] (II) RADEON(0): radeon_dri2_flip_event_handler:927 fevent[0x849e988] width 1024 pitch 4096 (/4 1024) [ 2072.178] (II) RADEON(0): radeon_dri2_schedule_flip:571 fevent[0x8c83298] ... [ 2082.364] (II) RADEON(0): Allocate new frame buffer 1400x1056 stride 1408 --- Switch back to native resolution (end of benchmark) [ 2082.364] (II) RADEON(0): VRAM usage limit set to 48326K ... Hope, this feedback is helpful and encourages the diverse involved developers to continue their work. Have fun! Kind Regards, - Sedat - [1] http://lists.freedesktop.org/archives/dri-devel/2010-October/005009.html [2] http://lists.freedesktop.org/archives/dri-devel/2010-October/005036.html [3] http://git.kernel.org/?p=linux/kernel/git/arnd/bkl.git;a=summary [4] http://people.freedesktop.org/~agd5f/pflip/ [ setup_linux-next_next-20101026.1.log ] ... -- Try to apply base. (+) OK linux-next/patch-v2.6.36-next-20101026 (+) OK linux-next/0001-Remove-localversion-next.patch (+) OK for-linux-next/fs-remove-BKL-from-FILE_LOCKING-v2.patch (+) OK for-linux-next/drm-i810-remove-SMP-support-and-BKL.patch (+) OK drm-radeon-testing/drm-radeon-testing.patch (+) OK drm-vblank-timestamping/1-3-drm-vblank-Add-support-for-precise-vblank-timestamping.patch (+) OK drm-vblank-timestamping/2-3-kms-radeon-Add-support-for-precise-vblank-timestamping.patch (+) OK drm-vblank-timestamping/drm-i915-fix-assignment-obj_priv-to_intel_bo.patch (+) OK drm-vblank-timestamping/3-3-kms-i915-Add-support-for-precise-vblank-timestamping.patch (+) OK drm-vblank-timestamping/drm-i915-fix-error-implicit-declaration-of-function-IS_IRONLAKE.patch (+) OK agd5f_pflip/0001-drm-radeon-kms-add-support-for-pflip-interrupts-on-6.patch (+) OK agd5f_pflip/0002-drm-radeon-kms-add-pageflip-ioctl-support.patch (+) OK
Re: Feedback: BKL / radeon pageflipping patches / DRM Vblank timestamping patches. 1st Try.
On Tue, Oct 26, 2010 at 9:32 AM, Sedat Dilek sedat.di...@googlemail.com wrote: Hi, today, I started with testing DRM Vblank timestamping patches. 1st Try. from Mario in combination with radeon pageflipping patches from Alex together in a non-BKL config Kernel-setup. First some words to my system and hardware: * It's a Debian/sid i386 host with latest dist-upgrades as of today. * My radeon gfxcard is a RV250. [ Linux-kernel ] * Base is a 2.6.36 vanilla Linux-kernel tarball * on top linux-next (next-20101026) with some extra-patches to be able to build a BKL-free Kernel (Thanks Arnd) * on top drm-radeon-testing (up to commit 881fe6c: drm/radeon/kms: properly compute group_size on 6xx/7xx) * Mario's vblank timestamp caching patches (Rev 1 10.10.2010) with some patches to fit linux-next/drm-radeon-testing * Alex's radeon-KMS pageflipping patches for Kernel * For full patch-series see below NOTE: My Linux-kernel has one speciality: It is BigKerneLock-free ! [ DDX (xf66-video-ati) ] * xf86-video-ati from GIT master (up to commit df92245: r100: add some missing bits in SE_COORD_FMT) * on top Alex's radeon-KMS pageflipping patch for DDX NOTE from Alex in [2]: 6xx/7xx/evergreen are pretty solid, but r1xx-r5xx still need some work. Thanks for testing! Please make sure you try the latest pageflipping patches I posted last night: http://lists.freedesktop.org/archives/dri-devel/2010-October/005042.html I've also updated put the latest patches here: http://people.freedesktop.org/~agd5f/pflip/ They work much better on r1xx-r5xx asics. Alex [ Mesa3D ] * it is from GIT master (up to commit 547e761: egl_dri2: Fix a typo that make glFlush be called at wrong time.) [ LibDRM ] * 2.4.22-1 from Debian/experimental [ Xorg-server ] * 2:1.9.0.902-1 from Debian/experimental So, how we know Mario made us happy (BTW, greetings from TUE to TUE)? [ dmesg ] [ 8.195646] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010). --- Driver-date could be changed into more human-readable 10-Oct-2010? What about the fun Alex gives us? [ /var/log/Xorg.0.log ] [ 1797.204] (II) RADEON(0): KMS Pageflipping: enabled INFO: I have attached the full dmesg and a Xorg.log (with logs after having started Eric Anholt's OpenArena benchmark). Above mentionned OA-benchmark drops fps from ~18 down to 13 (new Kernel + new DDX). I have not tested battery performance. My notebook's LVDS has a 1400x1050 resolution, OA was run @1024x768. Can you enlighten a bit on the other mesages in X log? [ /var/log/Xorg.0.log ] ... [ 2069.700] (II) RADEON(0): Allocate new frame buffer 1024x768 stride 1024 Start OpenArena benchmark [ 2069.700] (II) RADEON(0): VRAM usage limit set to 50788K [ 2072.150] (II) RADEON(0): radeon_dri2_schedule_flip:571 fevent[0x849e988] [ 2072.160] (II) RADEON(0): radeon_dri2_flip_event_handler:927 fevent[0x849e988] width 1024 pitch 4096 (/4 1024) [ 2072.178] (II) RADEON(0): radeon_dri2_schedule_flip:571 fevent[0x8c83298] ... [ 2082.364] (II) RADEON(0): Allocate new frame buffer 1400x1056 stride 1408 --- Switch back to native resolution (end of benchmark) [ 2082.364] (II) RADEON(0): VRAM usage limit set to 48326K ... Hope, this feedback is helpful and encourages the diverse involved developers to continue their work. Have fun! Kind Regards, - Sedat - [1] http://lists.freedesktop.org/archives/dri-devel/2010-October/005009.html [2] http://lists.freedesktop.org/archives/dri-devel/2010-October/005036.html [3] http://git.kernel.org/?p=linux/kernel/git/arnd/bkl.git;a=summary [4] http://people.freedesktop.org/~agd5f/pflip/ [ setup_linux-next_next-20101026.1.log ] ... -- Try to apply base. (+) OK linux-next/patch-v2.6.36-next-20101026 (+) OK linux-next/0001-Remove-localversion-next.patch (+) OK for-linux-next/fs-remove-BKL-from-FILE_LOCKING-v2.patch (+) OK for-linux-next/drm-i810-remove-SMP-support-and-BKL.patch (+) OK drm-radeon-testing/drm-radeon-testing.patch (+) OK drm-vblank-timestamping/1-3-drm-vblank-Add-support-for-precise-vblank-timestamping.patch (+) OK drm-vblank-timestamping/2-3-kms-radeon-Add-support-for-precise-vblank-timestamping.patch (+) OK drm-vblank-timestamping/drm-i915-fix-assignment-obj_priv-to_intel_bo.patch (+) OK drm-vblank-timestamping/3-3-kms-i915-Add-support-for-precise-vblank-timestamping.patch (+) OK drm-vblank-timestamping/drm-i915-fix-error-implicit-declaration-of-function-IS_IRONLAKE.patch (+) OK agd5f_pflip/0001-drm-radeon-kms-add-support-for-pflip-interrupts-on-6.patch (+) OK agd5f_pflip/0002-drm-radeon-kms-add-pageflip-ioctl-support.patch (+) OK linux-kbuild/1-2-Kbuild-Treat-KBUILD_DEFCONFIG-old-as-request-to-use-.config-as-the-base.patch (+) OK linux-kbuild/2-2-Kbuild-kconfig-Verbose-version-of---listnewconfig-and---defconfig-v2.patch (+) OK x86-apic-fix/Skip-looking-for-ioapic-overrides-when-ioapics-are-not-present.patch (+)
Re: DRM Vblank timestamping patches. 1st Try.
On Sun, Oct 24, 2010 at 3:28 PM, Mario Kleiner mario.klei...@tuebingen.mpg.de wrote: Hi all, after obsessing over these for another month after xds 2010, this is the first version of my vblank timestamping patches that i'm not totally ashamed off. Mario, these look great. Nice work! Reviewed-by: Alex Deucher alexdeuc...@gmail.com 1st patch modifies the drm vblank handling to maintain precise timestamps of when vblanks happen. It timestamps the end of each vblank interval (= start of active scanout of the following frame), as required by the OpenML OML_sync_control extension spec, so the DRI2 swap sync bits should return proper timestamps to gl clients. It also takes care of keeping timestamps and vblcounts consistent across vblank irq on/off and hopefully fixes a few off-by-one vblank counts due to race conditions in those on/off bits. There is still one small race condition between the vblank on/off bits and the gpu (updating its hardware vblank counter at the wrong moment) which can cause miscounting of vblanks across enable/disable. I have an idea how to fix that, based on these patches but will need to tinker around with it a bit more. After that we could reduce the vblankoffdelay from 5000 msecs to something smaller like 100 msecs to save more power on desktops with desktop composition enabled, where already a blinking cursor in a terminal window or a ticking clock in the menu bar can keep vblanks turned on all the time with a 5000 msecs timeout. All the timestamping inside the drmWaitVblank ioctl() and in vblank event handling now uses the timestamps calculated in this patch. 2nd and 3rd patches add the new timestamping and scanout position functions to the i915 and radeon drivers. Wrt. what i showed you at xds, i made the following changes: I've moved the actual timestamping routine as a helper function into the core. kms drivers now optionally export the crtc scanout position query function in addition to the vblank timestamping function to the drm core. Whenever the core has to recalculate timestamps it goes like: core - kmsdriver-timestamping() - core-timestampinghelper() - kmsdriver-getscanoutposition() The kms driver can implement its own version of the timestamping function, e.g., using special hardware timestamping registers in some more recent gpu's, or it can simply export a getscanoutposition() function with standardized behaviour across drivers and call the timestamping routine implemented in the core. The routine in the core works in non-interlaced, non-doublescan video modes, with or without panel scaling. It can compensate for any random delay up to 1 video refresh duration. For more robustness one would need to use a gpu specific hardware method. I also moved the calculation of the constants needed for timetamping into the drm_crtc_helper routine, so they only get recalculated after a mode switch, not at each vblank. At modeset time i cache the adjusted_mode after validation/adjustment by the crtc and encoders inside the drm_crtc struct. Needed to account for panel scaling, and i have a few other ideas that would require that cached value. More details in the different commit messages and the code, just some more remarks. @Jesse: I replaced the n extra dynamically allocated spin-locks for n crtc's by one statically allocated lock shared by all crtc's and renamed it. I think i also worked all your other suggestions into the patches. Thanks a lot for your first review of the earlier version. The intel driver uses the timestamps inside the finish pageflip function for timestamps of bufferswap completion. I've tested with an Atom Mini netbook with Intel 945 GME gpu and there it works perfect. I don't have any other intel test machines, so the finish pageflip and scanout query functions for ironlake, gen6 and g4x aren't tested, only coded based on some of the intel manuals at xorg. In the pageflip irq handlers there is this uncertainty if pageflip irq's get delivered before or after the vblank irq's for the vblank interval of swap completion. The i945 delivers pagflip irq's before handling the vblank irq's so the completion handler needs to account for that. I guessed from the code, which ones do deliver before/after vblank, but that guesses may be wrong, so this needs testing. @Alex: Thanks for your feedback at xds. I think the radeon part should be as we discussed. The radeon patch builds onto what you committed already into drm-radeon-testing for the reclocking fixes. It slightly changes the interface between the scanout query function and radeon_pm_in_vbl(), but doesn't change the implementation. Testing of the timestamps on the Intel 945GME, a Radeon R500 and a R600 against external measurement equipment shows that the timestamps are essentially perfect. Error wrt. to the external measurement is less than 20 microseconds (for the radeon's) and jitter is +/- 1 usec. The intel error is less
Re: DRM Vblank timestamping patches. 1st Try.
Oh btw., the patches are against the current drm-radeon-testing tree, applied after commit... 21c74a8ea8b47eb6c3c621e36578f6e27f65c5c7 drm, kdb, kms: Change mode_set_base_atomic() enter argument to be an enum ... and should apply cleanly. thanks, -mario -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: New case for intel_swap_event
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Zhao, Jian J wrote: Hi, Recently I have made a piglit case that can test the behaviors of buffer swap, they are 1) test whether we can get swap events. 2) verify whether the swap is asynchronous 3) verify the swap frequency of swap interval being 0 is larger than interval being 1. Jesse has helped me have brief look on it and give me some advice. I have modified it. Can you help to add it into piglit tests? Thanks for help and comments! Please send tests as patches using git-send-email. This enables people to put review comments in-line. - Fix the comment and license at the top of the file. - Re-wrap lines to 80 columns. - Fix broken whitespace usage }else{ should be } else { and if(foo){ should be if (foo) { etc. - piglit_report_result already calls exit, so the calls to exit in the code after calls to piglit_report_result are not necessary. - Use the utility routines in piglit-glx-util.c instead of open-coding them. -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkyzUcYACgkQX1gOwKyEAw+6zQCgkYPvU/Da9bzczyMxzl5EZx4y ougAoJtpcsfVsB7l3jM+HvA+0jeE4opn =EiQk -END PGP SIGNATURE- -- Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [Bug 19012] Kernel Mode Setting Fails on Radeon X700
FWIW, the ddx has the pci id correctly associated with rv410, so it looks like it was just improperly ported to the drm. -- Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: after closing the lid and reopening it the screen remains blank
On 09/10/2010 05:34 PM, Andy Isaacson wrote: On Sat, Sep 11, 2010 at 08:44:48AM +0900, Norbert Preining wrote: On Fr, 10 Sep 2010, Andy Isaacson wrote: FWIW, 2.6.36-rc3-00396-gbe6200a suspend-to-ram works for me on GM45 I never said that it has anything to do with suspend to ram. Ah, sorry for misunderstanding. My GM45 system is configured to automatically S2R on lid close so I tend to conflate the two... In fact, suspend to ram works perfectly without any problems. I only reboot after I installed a new kernel ... I will try some older kernels and see if it is a kernel or userspace issue. Do try the current tip and/or describe which post-rc3 kernel fails for you, just to verify. Also, is there anything in Xorg.0.log from when it fails to restore the video? Thanks for reporting the regression, it'll be good to get it fixed ASAP. -andy -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ over here: cat /etc/acpi/sleep.sh if grep -q close /proc/acpi/button/lid/LID0/state then /usr/sbin/s2ram fi works reliably over here(knock on wood..)with radeon not sure with intel cards.. Justin P. Mattock -- Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing http://p.sf.net/sfu/novell-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: after closing the lid and reopening it the screen remains blank
On Fr, 10 Sep 2010, Andy Isaacson wrote: FWIW, 2.6.36-rc3-00396-gbe6200a suspend-to-ram works for me on GM45 I never said that it has anything to do with suspend to ram. In fact, suspend to ram works perfectly without any problems. I only reboot after I installed a new kernel ... I will try some older kernels and see if it is a kernel or userspace issue. Best wishes Norbert Norbert Preiningprein...@{jaist.ac.jp, logic.at, debian.org} JAIST, Japan TeX Live Debian Developer DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094 NEMPNETT THRUBWELL (n.) The feeling experienced when driving off for the frist time on a brand new motorbike. --- Douglas Adams, The Meaning of Liff -- Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing http://p.sf.net/sfu/novell-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: after closing the lid and reopening it the screen remains blank
Hi Andy, On Fr, 10 Sep 2010, Andy Isaacson wrote: I never said that it has anything to do with suspend to ram. Ah, sorry for misunderstanding. My GM45 system is configured to automatically S2R on lid close so I tend to conflate the two... Mine, too, but not when running on AC. Do try the current tip and/or describe which post-rc3 kernel fails for current tip works fine. It seems that I was hit by one of the fixes I found in the git log fixed after the build I did (drm/i915: Prevent double dpms on, or drm/i915: Clear the vblank status bit before polling for the next vblank) Thanks for reporting the regression, it'll be good to get it fixed ASAP. Seems to be already fixed. Sorry for not testing the tip first. Best wishes Norbert Norbert Preiningprein...@{jaist.ac.jp, logic.at, debian.org} JAIST, Japan TeX Live Debian Developer DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094 MOLESBY (n.) The kind of family that drives to the seaside and then sits in the car with all the windows closed, reading the Sunday Express and wearing sidcups (q.v.) --- Douglas Adams, The Meaning of Liff -- Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing http://p.sf.net/sfu/novell-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: after closing the lid and reopening it the screen remains blank
On 09/09/2010 03:41 PM, Norbert Preining wrote: Hi all, running: 2.6.36-rc3+ (from git) on Integrated Graphics Chipset: Intel(R) GM45 (Sony Vaio Z11) Debian/unstable, so xserver 1.7.7, intel driver: 2.12.0 since some recent kernel I have the following problem: When closing the lid on power, so the machine does not suspend, the backlight is properly turned off. But when I open the lid again the backlight goes on, but there is nothing to see: No screensaver, no activity, nothing. Switching to Console in blind didn't work either. The machine is still responsible (Sysrq, but also CapsLock), and killing the X process with Ctrl-Alt-Backspace gets me back a working X. I am quite sure that it *was* working in former time, but cannot pinpoint eaxactely when the problems started. If you need any further information or testing, please let me know. But it will take some time until I am back somewhere where I can ssh into my machine (or try if I can ssh into). Best wishes Norbert Norbert Preiningprein...@{jaist.ac.jp, logic.at, debian.org} JAIST, Japan TeX Live Debian Developer DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094 BELPER A knob of someone else's chewing gum which you unexpectedly find your hand resting on under a deck's top, under the passenger seat of your car or on somebody's thigh under their skirt. --- Douglas Adams, The Meaning of Liff -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ if you change up kernels and one of them causes this..then I would do a bisect.. but if changing kernels makes no diff, then it's userpsace related(but could be wrong) i.e. on my machine I use acpid /etc/acpi/lid.sh in there its a simple call to s2ram (works fine(with radeon though))looking at some of the distros scripts(no-offense) theres loads of stuff in there todo all kinds of calls.. hope this helps. Justin P. Mattock -- Automate Storage Tiering Simply Optimize IT performance and efficiency through flexible, powerful, automated storage tiering capabilities. View this brief to learn how you can reduce costs and improve performance. http://p.sf.net/sfu/dell-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Branch 'master'
Dne 1.9.2010 02:53, Eric Anholt napsal(a): On Tue, 31 Aug 2010 12:17:43 +0200, Zdenek Kabelac zkabe...@redhat.com wrote: Dne 28.8.2010 05:55, Eric Anholt napsal(a): On Fri, 27 Aug 2010 13:16:04 +0200, Zdenek Kabelac zkabe...@redhat.com wrote: On 27.8.2010 12:02, Julien Cristau wrote: On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote: Why keeping different name for C++ and C ? Because changing the name for C means breaking API for existing users, which is not a nice thing to do. Well if DRM would have very stable API - it would make sence - but from a view of occasional user who needs to compile drm for intel driver - it seems the API is changed so frequently and in such an incompatible way that this change doesn't look all that bad. How many libdrm project users are there - and how often is this variable used outside of libdrm ? Now C++ will use different names for same variables - that IMHO bigger issue... Also - if headers are supposed to be C++ friendly - maybe usage of extern C might be handy for such case ? Uh, you claim the API has changed, but I'm not aware of any circumstance since TTM removal where upgrading libdrm on Intel should have broken either API or ABI for its users. Can you back that up? Ok - I'm remembering this issue: Essentially I've had idea to try to bisect for this problem: https://bugs.freedesktop.org/show_bug.cgi?id=26937 As I'm quite sure, that there were times were I could use fullscreen for flash without fear of having to restart my desktop. So I've tried just some random older git versions of libdrm intel driver - there were some minor compilations issue (I guess some list defines conflicts and few other minor things for compilation). However compiled driver library actually never worked and all I got was usually black screen. It's probably hard to judge if the problem is kernel driver (using usually quite fresh vanilla git tree) or Xorg from Fedora Rawhide can't work with some slightly older libdrm/intel. It probably not reasonable to spend time to detect where exactly is problem - all I want to point out is, that some internal API must changed significantly so while I could usually boot with 2 year old kernel, I cannot use few months old drmintel driver. And back to this issue - if this variable is used a lot by other projects, than this commit is probably ok - though looks ugly. But if there is just one project which uses it, than it's probably better to break API and keep it clean and use same variable for C C++ programs. For bisecting, just hold libdrm at the new version and bisect in 2d, unless your initial test of old+old vs old+new of each component points at libdrm (in which case, hold the 2d driver old and bisect across libdrm). New drivers do require new symbols, but libdrm is API and ABI stable, exactly so that people can bisect successfully. Ok - I made a closer look at the problem - and bisected for a reason my current Xorg server shows black screen for older version of Intel driver. It looks like the key issue is some API change in Xorg related to this Intel driver commit: 8700673157fdd3a87ad5150f2f30823261fec519 (Adapt glyphs for changes in devPrivates API, Jun 7 2010, Chris Wilson) This is effectively the oldest version of Intel driver which currently seems to work with my (recently upgraded) xorg-x11-server-Xorg-1.9.0-7.fc15.x86_64. It seems like cherry-picking to make this usable for older version of Intel git tree seems to be very complicated so doing bisect looks like very hard task in this case. I'm open to some ideas how could I eventually try to resolve/help with my fullscreen bug (id=26937). Anyway this seems to show that keeping API stable at one small library and breaking it in Xorg server itself doesn't make things better after all Is there any other way (except essentially completely reinstalling my whole system and trying to figure out which combination of Xorg and driver still works ok for full screen??) Would it help to post some /sys prints which would show why the screen is locked in 'fullscreen' picture and there is no way to restore it back ? Zdenek -- Automate Storage Tiering Simply Optimize IT performance and efficiency through flexible, powerful, automated storage tiering capabilities. View this brief to learn how you can reduce costs and improve performance. http://p.sf.net/sfu/dell-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: after closing the lid and reopening it the screen remains blank
On Fri, Sep 10, 2010 at 07:41:17AM +0900, Norbert Preining wrote: running: 2.6.36-rc3+ (from git) on Integrated Graphics Chipset: Intel(R) GM45 (Sony Vaio Z11) Debian/unstable, so xserver 1.7.7, intel driver: 2.12.0 since some recent kernel I have the following problem: When closing the lid on power, so the machine does not suspend, the backlight is properly turned off. But when I open the lid again the backlight goes on, but there is nothing to see: No screensaver, no activity, nothing. Switching to Console in blind didn't work either. The machine is still responsible (Sysrq, but also CapsLock), and killing the X process with Ctrl-Alt-Backspace gets me back a working X. I am quite sure that it *was* working in former time, but cannot pinpoint eaxactely when the problems started. If you need any further information or testing, please let me know. But it will take some time until I am back somewhere where I can ssh into my machine (or try if I can ssh into). FWIW, 2.6.36-rc3-00396-gbe6200a suspend-to-ram works for me on GM45 (Dell E4300). I am running Ubuntu with xorg-edgers from a few months ago: xserver-xorg-core 2:1.6.5+git20091107+server-1.6-branch.2dbcb06a-0ubuntu0sarvatt~karmic xserver-xorg-video-intel 2:2.11.0+git20100415.c374c94e-0ubuntu0sarvatt~karmic There are several regression fixes pulled after 2.6.36-rc3 in merge commit 4eab8a5717f5, can you try current linux-2.6.git ? If it still fails, please post - lspci -vvv - /var/log/Xorg.0.log from after the failure - dmesg -andy -- Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing http://p.sf.net/sfu/novell-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: after closing the lid and reopening it the screen remains blank
On Sat, Sep 11, 2010 at 08:44:48AM +0900, Norbert Preining wrote: On Fr, 10 Sep 2010, Andy Isaacson wrote: FWIW, 2.6.36-rc3-00396-gbe6200a suspend-to-ram works for me on GM45 I never said that it has anything to do with suspend to ram. Ah, sorry for misunderstanding. My GM45 system is configured to automatically S2R on lid close so I tend to conflate the two... In fact, suspend to ram works perfectly without any problems. I only reboot after I installed a new kernel ... I will try some older kernels and see if it is a kernel or userspace issue. Do try the current tip and/or describe which post-rc3 kernel fails for you, just to verify. Also, is there anything in Xorg.0.log from when it fails to restore the video? Thanks for reporting the regression, it'll be good to get it fixed ASAP. -andy -- Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing http://p.sf.net/sfu/novell-sfdev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Branch 'master'
On Tue, 31 Aug 2010 12:17:43 +0200, Zdenek Kabelac zkabe...@redhat.com wrote: Dne 28.8.2010 05:55, Eric Anholt napsal(a): On Fri, 27 Aug 2010 13:16:04 +0200, Zdenek Kabelac zkabe...@redhat.com wrote: On 27.8.2010 12:02, Julien Cristau wrote: On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote: Why keeping different name for C++ and C ? Because changing the name for C means breaking API for existing users, which is not a nice thing to do. Well if DRM would have very stable API - it would make sence - but from a view of occasional user who needs to compile drm for intel driver - it seems the API is changed so frequently and in such an incompatible way that this change doesn't look all that bad. How many libdrm project users are there - and how often is this variable used outside of libdrm ? Now C++ will use different names for same variables - that IMHO bigger issue... Also - if headers are supposed to be C++ friendly - maybe usage of extern C might be handy for such case ? Uh, you claim the API has changed, but I'm not aware of any circumstance since TTM removal where upgrading libdrm on Intel should have broken either API or ABI for its users. Can you back that up? Ok - I'm remembering this issue: Essentially I've had idea to try to bisect for this problem: https://bugs.freedesktop.org/show_bug.cgi?id=26937 As I'm quite sure, that there were times were I could use fullscreen for flash without fear of having to restart my desktop. So I've tried just some random older git versions of libdrm intel driver - there were some minor compilations issue (I guess some list defines conflicts and few other minor things for compilation). However compiled driver library actually never worked and all I got was usually black screen. It's probably hard to judge if the problem is kernel driver (using usually quite fresh vanilla git tree) or Xorg from Fedora Rawhide can't work with some slightly older libdrm/intel. It probably not reasonable to spend time to detect where exactly is problem - all I want to point out is, that some internal API must changed significantly so while I could usually boot with 2 year old kernel, I cannot use few months old drmintel driver. And back to this issue - if this variable is used a lot by other projects, than this commit is probably ok - though looks ugly. But if there is just one project which uses it, than it's probably better to break API and keep it clean and use same variable for C C++ programs. For bisecting, just hold libdrm at the new version and bisect in 2d, unless your initial test of old+old vs old+new of each component points at libdrm (in which case, hold the 2d driver old and bisect across libdrm). New drivers do require new symbols, but libdrm is API and ABI stable, exactly so that people can bisect successfully. pgpcqoVUWDGRH.pgp Description: PGP signature -- This SF.net Dev2Dev email is sponsored by: Show off your parallel programming skills. Enter the Intel(R) Threading Challenge 2010. http://p.sf.net/sfu/intel-thread-sfd-- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Branch 'master'
Dne 28.8.2010 05:55, Eric Anholt napsal(a): On Fri, 27 Aug 2010 13:16:04 +0200, Zdenek Kabelac zkabe...@redhat.com wrote: On 27.8.2010 12:02, Julien Cristau wrote: On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote: Why keeping different name for C++ and C ? Because changing the name for C means breaking API for existing users, which is not a nice thing to do. Well if DRM would have very stable API - it would make sence - but from a view of occasional user who needs to compile drm for intel driver - it seems the API is changed so frequently and in such an incompatible way that this change doesn't look all that bad. How many libdrm project users are there - and how often is this variable used outside of libdrm ? Now C++ will use different names for same variables - that IMHO bigger issue... Also - if headers are supposed to be C++ friendly - maybe usage of extern C might be handy for such case ? Uh, you claim the API has changed, but I'm not aware of any circumstance since TTM removal where upgrading libdrm on Intel should have broken either API or ABI for its users. Can you back that up? Ok - I'm remembering this issue: Essentially I've had idea to try to bisect for this problem: https://bugs.freedesktop.org/show_bug.cgi?id=26937 As I'm quite sure, that there were times were I could use fullscreen for flash without fear of having to restart my desktop. So I've tried just some random older git versions of libdrm intel driver - there were some minor compilations issue (I guess some list defines conflicts and few other minor things for compilation). However compiled driver library actually never worked and all I got was usually black screen. It's probably hard to judge if the problem is kernel driver (using usually quite fresh vanilla git tree) or Xorg from Fedora Rawhide can't work with some slightly older libdrm/intel. It probably not reasonable to spend time to detect where exactly is problem - all I want to point out is, that some internal API must changed significantly so while I could usually boot with 2 year old kernel, I cannot use few months old drmintel driver. And back to this issue - if this variable is used a lot by other projects, than this commit is probably ok - though looks ugly. But if there is just one project which uses it, than it's probably better to break API and keep it clean and use same variable for C C++ programs. Zdenek -- This SF.net Dev2Dev email is sponsored by: Show off your parallel programming skills. Enter the Intel(R) Threading Challenge 2010. http://p.sf.net/sfu/intel-thread-sfd -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Branch 'master'
On Fri, 27 Aug 2010 13:16:04 +0200, Zdenek Kabelac zkabe...@redhat.com wrote: On 27.8.2010 12:02, Julien Cristau wrote: On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote: Why keeping different name for C++ and C ? Because changing the name for C means breaking API for existing users, which is not a nice thing to do. Well if DRM would have very stable API - it would make sence - but from a view of occasional user who needs to compile drm for intel driver - it seems the API is changed so frequently and in such an incompatible way that this change doesn't look all that bad. How many libdrm project users are there - and how often is this variable used outside of libdrm ? Now C++ will use different names for same variables - that IMHO bigger issue... Also - if headers are supposed to be C++ friendly - maybe usage of extern C might be handy for such case ? Uh, you claim the API has changed, but I'm not aware of any circumstance since TTM removal where upgrading libdrm on Intel should have broken either API or ABI for its users. Can you back that up? pgpKm9ejTeVnU.pgp Description: PGP signature -- Sell apps to millions through the Intel(R) Atom(Tm) Developer Program Be part of this innovative community and reach millions of netbook users worldwide. Take advantage of special opportunities to increase revenue and speed time-to-market. Join now, and jumpstart your future. http://p.sf.net/sfu/intel-atom-d2d-- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Branch 'master'
Dne 27.8.2010 00:50, Eric Anholt napsal(a): include/drm/drm.h|4 intel/intel_bufmgr.h |6 +- 2 files changed, 9 insertions(+), 1 deletion(-) New commits: commit 23287f05cf2443ddf9e028e29beb5bd30979c6cf Author: Eric Anholt e...@anholt.net Date: Thu Aug 26 15:39:28 2010 -0700 Avoid use of c++ reserved keyword virtual when using a C++ compiler. Avoids requiring nasty hacks around libdrm headers in the new C++ parts of Mesa drivers. diff --git a/include/drm/drm.h b/include/drm/drm.h index a0559eb..2ba7136 100644 --- a/include/drm/drm.h +++ b/include/drm/drm.h @@ -373,7 +373,11 @@ struct drm_buf_pub { */ struct drm_buf_map { int count; /** Length of the buffer list */ +#ifdef __cplusplus + void *virt; +#else void *virtual; /** Mmap'd area in user-virtual */ +#endif struct drm_buf_pub *list; /** Buffer information */ }; Quit weird patch Why keeping different name for C++ and C ? Why not simply use i.e.: void* user_virtual; Or something similar - and avoid using these rather useless ifdefs ? Zdenek -- Sell apps to millions through the Intel(R) Atom(Tm) Developer Program Be part of this innovative community and reach millions of netbook users worldwide. Take advantage of special opportunities to increase revenue and speed time-to-market. Join now, and jumpstart your future. http://p.sf.net/sfu/intel-atom-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Branch 'master'
On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote: Why keeping different name for C++ and C ? Because changing the name for C means breaking API for existing users, which is not a nice thing to do. Cheers, Julien -- Sell apps to millions through the Intel(R) Atom(Tm) Developer Program Be part of this innovative community and reach millions of netbook users worldwide. Take advantage of special opportunities to increase revenue and speed time-to-market. Join now, and jumpstart your future. http://p.sf.net/sfu/intel-atom-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: drm: Branch 'master'
On 27.8.2010 12:02, Julien Cristau wrote: On Fri, Aug 27, 2010 at 11:26:59 +0200, Zdenek Kabelac wrote: Why keeping different name for C++ and C ? Because changing the name for C means breaking API for existing users, which is not a nice thing to do. Well if DRM would have very stable API - it would make sence - but from a view of occasional user who needs to compile drm for intel driver - it seems the API is changed so frequently and in such an incompatible way that this change doesn't look all that bad. How many libdrm project users are there - and how often is this variable used outside of libdrm ? Now C++ will use different names for same variables - that IMHO bigger issue... Also - if headers are supposed to be C++ friendly - maybe usage of extern C might be handy for such case ? Zdenek -- Sell apps to millions through the Intel(R) Atom(Tm) Developer Program Be part of this innovative community and reach millions of netbook users worldwide. Take advantage of special opportunities to increase revenue and speed time-to-market. Join now, and jumpstart your future. http://p.sf.net/sfu/intel-atom-d2d -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] drm: Fix support for PCI domains
On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt b...@kernel.crashing.org wrote: (For some reason I thought that went in ages ago ...) This fixes support for PCI domains in what should hopefully be a backward compatible way along with a change to libdrm. When the interface version is set to 1.4, we assume userspace understands domains and the world is at peace. We thus pass proper domain numbers instead of 0 to userspace. The newer libdrm will then try 1.4 first, and fallback to 1.1, along with ignoring domains in the later case (well, except on alpha of course) Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org --- drivers/gpu/drm/drm_ioctl.c | 1 + include/drm/drmP.h | 18 +- include/drm/drm_core.h | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/include/drm/drmP.h b/include/drm/drmP.h index c1b9871..6d4bad5 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1071,11 +1071,19 @@ static __inline__ int drm_core_check_feature(struct drm_device *dev, return ((dev-driver-driver_features feature) ? 1 : 0); } -#ifdef __alpha__ -#define drm_get_pci_domain(dev) dev-hose-index -#else -#define drm_get_pci_domain(dev) 0 -#endif +static inline int drm_get_pci_domain(struct drm_device *dev) +{ +#ifndef __alpha__ + /* For historical reasons, drm_get_pci_domain() is busticated + * on most archs and has to remain so for userspace interface + * 1.4, except on alpha which was right from the beginning + */ + if (dev-if_version 0x10004) + return 0; +#endif /* __alpha__ */ + + return pci_domain_nr(dev-pdev-bus); error: implicit declaration of function ‘pci_domain_nr’ on m68k without PCI. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say programmer or something like that. -- Linus Torvalds -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] drm: Fix support for PCI domains
On Fri, Aug 13, 2010 at 7:30 AM, Geert Uytterhoeven ge...@linux-m68k.org wrote: On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt b...@kernel.crashing.org wrote: (For some reason I thought that went in ages ago ...) This fixes support for PCI domains in what should hopefully be a backward compatible way along with a change to libdrm. When the interface version is set to 1.4, we assume userspace understands domains and the world is at peace. We thus pass proper domain numbers instead of 0 to userspace. The newer libdrm will then try 1.4 first, and fallback to 1.1, along with ignoring domains in the later case (well, except on alpha of course) Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org --- drivers/gpu/drm/drm_ioctl.c | 1 + include/drm/drmP.h | 18 +- include/drm/drm_core.h | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/include/drm/drmP.h b/include/drm/drmP.h index c1b9871..6d4bad5 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1071,11 +1071,19 @@ static __inline__ int drm_core_check_feature(struct drm_device *dev, return ((dev-driver-driver_features feature) ? 1 : 0); } -#ifdef __alpha__ -#define drm_get_pci_domain(dev) dev-hose-index -#else -#define drm_get_pci_domain(dev) 0 -#endif +static inline int drm_get_pci_domain(struct drm_device *dev) +{ +#ifndef __alpha__ + /* For historical reasons, drm_get_pci_domain() is busticated + * on most archs and has to remain so for userspace interface + * 1.4, except on alpha which was right from the beginning + */ + if (dev-if_version 0x10004) + return 0; +#endif /* __alpha__ */ + + return pci_domain_nr(dev-pdev-bus); error: implicit declaration of function ‘pci_domain_nr’ on m68k without PCI. I don't think I want to add an ifdef CONFIG_PCI into the drm layer for this, since we seem to be okay everywhere else, lets ask jbarnes, not sure if its safe to just add this to the !CONFIG_PCI section of the linux/pci.h Dave. -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] drm: Fix support for PCI domains
On Fri, 13 Aug 2010 09:33:35 +1000 Dave Airlie airl...@gmail.com wrote: On Fri, Aug 13, 2010 at 7:30 AM, Geert Uytterhoeven ge...@linux-m68k.org wrote: On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt b...@kernel.crashing.org wrote: (For some reason I thought that went in ages ago ...) This fixes support for PCI domains in what should hopefully be a backward compatible way along with a change to libdrm. When the interface version is set to 1.4, we assume userspace understands domains and the world is at peace. We thus pass proper domain numbers instead of 0 to userspace. The newer libdrm will then try 1.4 first, and fallback to 1.1, along with ignoring domains in the later case (well, except on alpha of course) Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org --- drivers/gpu/drm/drm_ioctl.c | 1 + include/drm/drmP.h | 18 +- include/drm/drm_core.h | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/include/drm/drmP.h b/include/drm/drmP.h index c1b9871..6d4bad5 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1071,11 +1071,19 @@ static __inline__ int drm_core_check_feature(struct drm_device *dev, return ((dev-driver-driver_features feature) ? 1 : 0); } -#ifdef __alpha__ -#define drm_get_pci_domain(dev) dev-hose-index -#else -#define drm_get_pci_domain(dev) 0 -#endif +static inline int drm_get_pci_domain(struct drm_device *dev) +{ +#ifndef __alpha__ + /* For historical reasons, drm_get_pci_domain() is busticated + * on most archs and has to remain so for userspace interface + * 1.4, except on alpha which was right from the beginning + */ + if (dev-if_version 0x10004) + return 0; +#endif /* __alpha__ */ + + return pci_domain_nr(dev-pdev-bus); error: implicit declaration of function ‘pci_domain_nr’ on m68k without PCI. I don't think I want to add an ifdef CONFIG_PCI into the drm layer for this, since we seem to be okay everywhere else, lets ask jbarnes, not sure if its safe to just add this to the !CONFIG_PCI section of the linux/pci.h Hm, so pci_domain_nr should just return 0 on platforms where CONFIG_PCI_DOMAINS isn't set. I'd expect that to be the case when CONFIG_PCI=n... Maybe we just need to shuffle the definition around? -- Jesse Barnes, Intel Open Source Technology Center -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] drm: Fix support for PCI domains
On Fri, Aug 13, 2010 at 9:45 AM, Jesse Barnes jbar...@virtuousgeek.org wrote: On Fri, 13 Aug 2010 09:33:35 +1000 Dave Airlie airl...@gmail.com wrote: On Fri, Aug 13, 2010 at 7:30 AM, Geert Uytterhoeven ge...@linux-m68k.org wrote: On Fri, Aug 6, 2010 at 05:55, Benjamin Herrenschmidt b...@kernel.crashing.org wrote: (For some reason I thought that went in ages ago ...) This fixes support for PCI domains in what should hopefully be a backward compatible way along with a change to libdrm. When the interface version is set to 1.4, we assume userspace understands domains and the world is at peace. We thus pass proper domain numbers instead of 0 to userspace. The newer libdrm will then try 1.4 first, and fallback to 1.1, along with ignoring domains in the later case (well, except on alpha of course) Signed-off-by: Benjamin Herrenschmidt b...@kernel.crashing.org --- drivers/gpu/drm/drm_ioctl.c | 1 + include/drm/drmP.h | 18 +- include/drm/drm_core.h | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/include/drm/drmP.h b/include/drm/drmP.h index c1b9871..6d4bad5 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1071,11 +1071,19 @@ static __inline__ int drm_core_check_feature(struct drm_device *dev, return ((dev-driver-driver_features feature) ? 1 : 0); } -#ifdef __alpha__ -#define drm_get_pci_domain(dev) dev-hose-index -#else -#define drm_get_pci_domain(dev) 0 -#endif +static inline int drm_get_pci_domain(struct drm_device *dev) +{ +#ifndef __alpha__ + /* For historical reasons, drm_get_pci_domain() is busticated + * on most archs and has to remain so for userspace interface + * 1.4, except on alpha which was right from the beginning + */ + if (dev-if_version 0x10004) + return 0; +#endif /* __alpha__ */ + + return pci_domain_nr(dev-pdev-bus); error: implicit declaration of function ‘pci_domain_nr’ on m68k without PCI. I don't think I want to add an ifdef CONFIG_PCI into the drm layer for this, since we seem to be okay everywhere else, lets ask jbarnes, not sure if its safe to just add this to the !CONFIG_PCI section of the linux/pci.h Hm, so pci_domain_nr should just return 0 on platforms where CONFIG_PCI_DOMAINS isn't set. I'd expect that to be the case when CONFIG_PCI=n... Maybe we just need to shuffle the definition around? I suspect something like the attached would suffice. Or maybe moving the CONFIG_PCI_DOMAINS checkout outside CONFIG_PCI. Dave. mydiff Description: Binary data -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [PATCH] drm: Fix support for PCI domains
Hm, so pci_domain_nr should just return 0 on platforms where CONFIG_PCI_DOMAINS isn't set. I'd expect that to be the case when CONFIG_PCI=n... Maybe we just need to shuffle the definition around? I suspect something like the attached would suffice. Or maybe moving the CONFIG_PCI_DOMAINS checkout outside CONFIG_PCI. Yeah, that looks ok, and better than putting it in drm. I'll apply to my for-linus branch for the next PCI fixes pull. Thanks, Jesse -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [DRM] BUG: sleeping function called from invalid context, drm_lastclose
On Wed, Aug 11, 2010 at 6:48 PM, Luca Tettamanti kronos...@gmail.com wrote: Hi Arnd, this commit: commit 58374713c9dfb4d231f8c56cac089f6fbdedc2ec Author: Arnd Bergmann a...@arndb.de Date: Sat Jul 10 23:51:39 2010 +0200 drm: kill BKL from common code moved the call to (inside drm_release) drm_lastclose inside dev-count_lock spinlock. drm_lastclose however takes dev-struct_mutex (now inside an atomic context): I have a patch from Chris Wilson that I need to push to fix this, basically reducing the spin lock coverage, and relying on the global mutex to handle the open race. Dave. BUG: sleeping function called from invalid context at /home/kronos/src/linux-2.6.git/kernel/mutex.c:94 in_atomic(): 1, irqs_disabled(): 0, pid: 3331, name: Xorg Pid: 3331, comm: Xorg Not tainted 2.6.35-06113-gf6cec0a #272 Call Trace: [8102770e] __might_sleep+0xf8/0xfa [8127cf18] mutex_lock+0x1f/0x3e [a052d1c1] drm_lastclose+0x92/0x2ad [drm] [a052dbc7] drm_release+0x5ca/0x60d [drm] [810b118f] fput+0x130/0x1f7 [810ae77d] filp_close+0x63/0x6d [810ae82f] sys_close+0xa8/0xe2 [8100296b] system_call_fastpath+0x16/0x1b Luca -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [DRM] BUG: sleeping function called from invalid context, drm_lastclose
On Wednesday 11 August 2010, Dave Airlie wrote: On Wed, Aug 11, 2010 at 6:48 PM, Luca Tettamanti kronos...@gmail.com wrote: moved the call to (inside drm_release) drm_lastclose inside dev-count_lock spinlock. drm_lastclose however takes dev-struct_mutex (now inside an atomic context): Yes, that's obviously been broken by me, sorry about the trouble. I must have been trying to simplify the error handling by adding a goto at the end of drm_release, which then happened to break the common path. The easiest way to fix this would be to go back to the way drm_release() worked previously and /only/ replace {,un}lock_kernel() with mutex_{,un}lock(drm_global_mutex);. I have a patch from Chris Wilson that I need to push to fix this, basically reducing the spin lock coverage, and relying on the global mutex to handle the open race. Yes, that sounds good, it's what the code used to do before my broken change. You might also be able to find a way to remove drm_global_lock from the open/close path entirely. Arnd -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: radeon kms on ppc status
On Mon, 2010-08-09 at 16:16 +1000, Benjamin Herrenschmidt wrote: I'm currently testing on a rv350 based aluminium powerbooks. Same here. :) - AGP: locks up before the console shows anything useful, that's going to be fun to debug without a serial port ... I'll see what I can with netconsole or some firewire hack. Works fine with PCI GART. AGP 1x works mostly fine for me. Not sure what the problem is with higher speeds (4x used to work fine with UMS) but I guess most likely some kind of coherency issue which only matters now that we're dynamically changing GTT bindings. The reason you don't get anything useful with higher AGP speeds is that the attempt to reset the locked-up GPU kills the machine. I tried tracking this down with netconsole but the only possibly relevant info I've got out of that yet is that there seem to be some machine checks occurring. - transition from offb. If both kms and offb are built-in, the transition leads to panel blooming. I only tried this once but AFAIR it was the same for me. - The other fancy stuff... well, we could make up profiles on powerbooks I suppose, at least dynclk can be enable always and I'm sure we can make up default profiles with something like half clock speed, what do you reckon ? Might be nice, though IME the CPU seems to suck more power anyway. :) IMO the highest priority missing feature is backlight control, followed by suspend/resume. Note that there's also still outstanding KMS related endianness issues in the Mesa tree, in particular concerning r300g but also the classic driver related to the OpenGL blit functionality. I've been meaning to clean up and push my hacks for those but had little time recently. -- Earthling Michel Dänzer |http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: radeon kms on ppc status
On Tue, 2010-08-10 at 14:56 +0200, Michel Dänzer wrote: On Mon, 2010-08-09 at 16:16 +1000, Benjamin Herrenschmidt wrote: I'm currently testing on a rv350 based aluminium powerbooks. Same here. :) Heh. Well, I also have the G5 with rv350, and that has a serial port :-) - AGP: locks up before the console shows anything useful, that's going to be fun to debug without a serial port ... I'll see what I can with netconsole or some firewire hack. Works fine with PCI GART. AGP 1x works mostly fine for me. Not sure what the problem is with higher speeds (4x used to work fine with UMS) but I guess most likely some kind of coherency issue which only matters now that we're dynamically changing GTT bindings. Ok. Well, we -know- we have a problem with AGP anyways bcs of that dual cachable/non-cachable mapping issue. I'll see if I can find ways to work around that. If not, I don't really mind sticking to x1, it's old machines and it's better than nothing. The reason you don't get anything useful with higher AGP speeds is that the attempt to reset the locked-up GPU kills the machine. I tried tracking this down with netconsole but the only possibly relevant info I've got out of that yet is that there seem to be some machine checks occurring. Right, makes sense if the card doesn't answer to an MMIO access. I'll see what I can do. - transition from offb. If both kms and offb are built-in, the transition leads to panel blooming. I only tried this once but AFAIR it was the same for me. I found some stuff there and fixed some on the G5. It now works there, I haven't tried again on the powerbook yet. One is the patch I send to do an early transition like nouveau does. The other one is you need to make sure CONFIG_VT_HW_CONSOLE_BINDING is set. Without that, unregister_framebuffer() of offb fails bcs fbcon refuses to unbind the last console. So you end up with fb1 for the drm, while fb0 remains on offb and everything breaks. We might want to make this a hard dependency. - The other fancy stuff... well, we could make up profiles on powerbooks I suppose, at least dynclk can be enable always and I'm sure we can make up default profiles with something like half clock speed, what do you reckon ? Might be nice, though IME the CPU seems to suck more power anyway. :) Right. IMO the highest priority missing feature is backlight control, followed by suspend/resume. Agreed. Note that there's also still outstanding KMS related endianness issues in the Mesa tree, in particular concerning r300g but also the classic driver related to the OpenGL blit functionality. I've been meaning to clean up and push my hacks for those but had little time recently. Ok. I'll leave you to those because I really know near to nothing about GL and Mesa ... from my quick tests, things seem to work allright with compiz on the G5 and the powerbook tho with whatever Mesa's in lucid. Also, the few tests I did on the quad G5 with nvidia 6600 nouveau were interesting as well (gallium in that case). nouveau itself works well, but the mesa part doesn't (renders black). The interesting thing tho was that all the SW rendering path seemed to work well, which is a nice change from not that long ago where all the fallbacks were endian broken. I suspect you may have done some fixing there :-) Cheers, Ben. -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: radeon kms on ppc status
2010/8/9 Benjamin Herrenschmidt b...@kernel.crashing.org: Just a quick status in case others are interested and want to help as I have -very- little time. Unfortunately, I don't have much spare time to dedicate to this either and I don't have any ppc machines. I'm currently testing on a rv350 based aluminium powerbooks. The basic stuff works provided you stay away from AGP. Here's things in no special order I noticed: - AGP: locks up before the console shows anything useful, that's going to be fun to debug without a serial port ... I'll see what I can with netconsole or some firewire hack. Works fine with PCI GART. I think Michel had it working with 1x AGP. - transition from offb. If both kms and offb are built-in, the transition leads to panel blooming. Note that it seems broken with nouveau on the G5 as well, I suspect we are passing a crap mode when picking up from offb at boot. - Power Management. - Sleep/wakeup needs to be ported over from radeonfb (will also be useful for some x86 models). It would be nice to get this ported over. - The other fancy stuff... well, we could make up profiles on powerbooks I suppose, at least dynclk can be enable always and I'm sure we can make up default profiles with something like half clock speed, what do you reckon ? The dynclks in the drm should work on the ppc. As for the power profiles, something like a half clock should work. Probably also useful to come up with some way to add backlight control to the macs without conflicting with the acpi backlight stuff on x86. Alex -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev -- ___ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel