Thread (49 messages) 49 messages, 3 authors, 2013-03-11

Re: [PATCHv5,RESEND 8/8] drm: tegra: Add gr2d device

From: Terje Bergström <hidden>
Date: 2013-02-11 00:43:09
Also in: dri-devel, lkml

On 07.02.2013 23:07, Thierry Reding wrote:
On Wed, Feb 06, 2013 at 01:23:17PM -0800, Terje Bergström wrote:
quoted
quoted
quoted
That's the security firewall. It walks through each submit, and ensures
that each register write that writes an address, goes through the host1x
reloc mechanism. This way user space cannot ask 2D to write to arbitrary
memory locations.
I see. Can this be made more generic? Perhaps adding a table of valid
registers to the device and use a generic function to iterate over that
instead of having to provide the same function for each client.
For which one does gcc generate more efficient code? I've thought a
switch-case statement might get compiled into something more efficient
than a table lookup.
But the rest of the code is generic - just the one function which
compares against known address registers is specific to 2D.
Table lookup should be pretty fast. I wouldn't worry too much about
performance at this stage, though. Readability is more important in my
opinion. A lookup table is a lot more readable and reusable I think. If
it turns out that using a function is actually faster we can always
optimize later.
You're right about performance. We already saw quite a bad performance
hit with the current firewall, so we'll need to worry about performance
later.

I'll take a look at converting the register list to a table. Instead of
always doing a linear search of a table, a bitfield might be more
appropriate.

Terje
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help