Samuel Pitoiset
2015-Dec-08 14:56 UTC
[Nouveau] [mesa v2 8/9] nvc0: remove allocation of unused sw class
NACK. This patches breaks MP performance counters on Fermi/Kepler because they actually use software methods to configure multiplexers. Global perf counters will also use software methods to init, sample and read hardware counters, so this SW object is definitely needed. Instead of removing it, we need to do something like that: http://paste.awesom.eu/EQeX Thanks. On 11/27/2015 02:05 AM, Ben Skeggs wrote:> From: Ben Skeggs <bskeggs at redhat.com> > > This would need to be fixed before NVIF can be switched on, but since we > don't use it anyway, just remove it. > > Signed-off-by: Ben Skeggs <bskeggs at redhat.com> > --- > src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 8 -------- > src/gallium/drivers/nouveau/nvc0/nvc0_screen.h | 1 - > 2 files changed, 9 deletions(-) > > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c > index 4897ebe..11cb74a 100644 > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c > @@ -447,7 +447,6 @@ nvc0_screen_destroy(struct pipe_screen *pscreen) > nouveau_object_del(&screen->eng2d); > nouveau_object_del(&screen->m2mf); > nouveau_object_del(&screen->compute); > - nouveau_object_del(&screen->nvsw); > > nouveau_screen_fini(&screen->base); > > @@ -698,13 +697,6 @@ nvc0_screen_create(struct nouveau_device *dev) > screen->base.fence.update = nvc0_screen_fence_update; > > > - ret = nouveau_object_new(chan, > - (dev->chipset < 0xe0) ? 0x1f906e : 0x906e, 0x906e, > - NULL, 0, &screen->nvsw); > - if (ret) > - FAIL_SCREEN_INIT("Error creating SW object: %d\n", ret); > - > - > switch (dev->chipset & ~0xf) { > case 0x110: > case 0x100: > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.h b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.h > index 8b73102..caf34aa 100644 > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.h > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.h > @@ -105,7 +105,6 @@ struct nvc0_screen { > struct nouveau_object *eng2d; > struct nouveau_object *m2mf; > struct nouveau_object *compute; > - struct nouveau_object *nvsw; > }; > > static inline struct nvc0_screen * >-- -Samuel
Emil Velikov
2015-Dec-08 15:30 UTC
[Nouveau] [mesa v2 8/9] nvc0: remove allocation of unused sw class
On 8 December 2015 at 14:56, Samuel Pitoiset <samuel.pitoiset at gmail.com> wrote:> NACK. > > This patches breaks MP performance counters on Fermi/Kepler because they > actually use software methods to configure multiplexers. Global perf > counters will also use software methods to init, sample and read hardware > counters, so this SW object is definitely needed. >I'm curious how exactly this happens. Afaict there is no reference to the nvsw object, which ought to be used, wouldn't it ? Imho if there is something subtle it's worth adding a comment. -Emil
Samuel Pitoiset
2015-Dec-08 16:05 UTC
[Nouveau] [mesa v2 8/9] nvc0: remove allocation of unused sw class
On 12/08/2015 04:30 PM, Emil Velikov wrote:> On 8 December 2015 at 14:56, Samuel Pitoiset <samuel.pitoiset at gmail.com> wrote: >> NACK. >> >> This patches breaks MP performance counters on Fermi/Kepler because they >> actually use software methods to configure multiplexers. Global perf >> counters will also use software methods to init, sample and read hardware >> counters, so this SW object is definitely needed. >> > I'm curious how exactly this happens. Afaict there is no reference to > the nvsw object, which ought to be used, wouldn't it ? > Imho if there is something subtle it's worth adding a comment.Usually, we need to "register" a subchannel using the NV01_SUBCHAN_OBJECT command, but surprisingly this doesn't seem to be needed for this SW subchan. Probably because it's not *really* a subchan like 3D, 2D, COMPUTE, M2MF and so on. I'm not sure if the right way is to use NV01_SUBCHAN_OBJECT like other subchans (even if this one won't change anything), or to add a comment. Ben, any ideas?> > -Emil >-- -Samuel
Maybe Matching Threads
- [mesa v2 8/9] nvc0: remove allocation of unused sw class
- [mesa v2 8/9] nvc0: remove allocation of unused sw class
- [mesa v3 8/9] nvc0: remove use of deprecated sw class identifier
- [PATCH] nvc0: remove unused nvc0_screen::mm_VRAM_fe0
- [PATCH] nvc0: remove unused nvc0_screen::mm_VRAM_fe0