diff for duplicates of <20180329164207.GY5453@intel.com> diff --git a/a/1.txt b/N1/1.txt index e5fc1a0..a79aff2 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -8,9 +8,9 @@ On Thu, Mar 29, 2018 at 05:32:13PM +0100, Ben Hutchings wrote: > > commit 75cff0837c14eaf632efabb8d7ab9eec6394d20d > Author: Chris Wilson <chris@chris-wilson.co.uk> -> Date: Fri Mar 24 17:30:58 2017 +0000 +> Date:���Fri Mar 24 17:30:58 2017 +0000 > -> drm: Make the decision to keep vblank irq enabled earlier +> ����drm: Make the decision to keep vblank irq enabled earlier Why are we backporting optimizations anyway? @@ -20,7 +20,7 @@ Why are we backporting optimizations anyway? > > On vblank instant-off systems, we can get into a situation where the cost > > of enabling and disabling the vblank IRQ around a drmWaitVblank query > > dominates. And with the advent of even deeper hardware sleep state, -> > touching registers becomes ever more expensive. However, we know that if +> > touching registers becomes ever more expensive.��However, we know that if > > the user wants the current vblank counter, they are also very likely to > > immediately queue a vblank wait and so we can keep the interrupt around > > and only turn it off if we have no further vblank requests queued within @@ -49,9 +49,9 @@ Why are we backporting optimizations anyway? > > query loop. There's that comment in vblank_disable_and_save: > > > > "* Skip this step if there isn't any high precision timestamp -> > * available. In that case we can't account for this and just -> > * hope for the best. -> > */ +> > �* available. In that case we can't account for this and just +> > �* hope for the best. +> > �*/ > > > > With the disable happening after leading edge of vblank (== hw counter > > increment already happened) but before the vblank counter/timestamp @@ -69,59 +69,59 @@ Why are we backporting optimizations anyway? > > > > Testcase: igt/kms_vblank > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> -> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> +> > Cc: Ville Syrj�l� <ville.syrjala@linux.intel.com> > > Cc: Daniel Vetter <daniel@ffwll.ch> -> > Cc: Michel Dänzer <michel@daenzer.net> +> > Cc: Michel D�nzer <michel@daenzer.net> > > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > Cc: Dave Airlie <airlied@redhat.com>, > > Cc: Mario Kleiner <mario.kleiner.de@gmail.com> -> > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> +> > Reviewed-by: Ville Syrj�l� <ville.syrjala@linux.intel.com> > > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > Link: http://patchwork.freedesktop.org/patch/msgid/20170315204027.20160-1-chris@chris-wilson.co.uk > > Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> > > --- -> > drivers/gpu/drm/drm_irq.c | 14 ++++++++++++-- -> > 1 file changed, 12 insertions(+), 2 deletions(-) +> > �drivers/gpu/drm/drm_irq.c | 14 ++++++++++++-- +> > �1 file changed, 12 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c > > index 8090989185b2..4ddbc49125cd 100644 > > --- a/drivers/gpu/drm/drm_irq.c > > +++ b/drivers/gpu/drm/drm_irq.c > > @@ -1271,9 +1271,9 @@ void drm_vblank_put(struct drm_device *dev, unsigned int pipe) -> > if (atomic_dec_and_test(&vblank->refcount)) { -> > if (drm_vblank_offdelay == 0) -> > return; +> > � if (atomic_dec_and_test(&vblank->refcount)) { +> > � if (drm_vblank_offdelay == 0) +> > � return; > > - else if (dev->vblank_disable_immediate || drm_vblank_offdelay < 0) > > + else if (drm_vblank_offdelay < 0) -> > vblank_disable_fn((unsigned long)vblank); +> > � vblank_disable_fn((unsigned long)vblank); > > - else > > + else if (!dev->vblank_disable_immediate) -> > mod_timer(&vblank->disable_timer, -> > jiffies + ((drm_vblank_offdelay * HZ)/1000)); -> > } +> > � mod_timer(&vblank->disable_timer, +> > � ��jiffies + ((drm_vblank_offdelay * HZ)/1000)); +> > � } > > @@ -1902,6 +1902,16 @@ bool drm_handle_vblank(struct drm_device *dev, unsigned int pipe) -> > wake_up(&vblank->queue); -> > drm_handle_vblank_events(dev, pipe); -> > +> > � wake_up(&vblank->queue); +> > � drm_handle_vblank_events(dev, pipe); +> > � > > + /* With instant-off, we defer disabling the interrupt until after -> > + * we finish processing the following vblank. The disable has to -> > + * be last (after drm_handle_vblank_events) so that the timestamp -> > + * is always accurate. -> > + */ +> > + �* we finish processing the following vblank. The disable has to +> > + �* be last (after drm_handle_vblank_events) so that the timestamp +> > + �* is always accurate. +> > + �*/ > > + if (dev->vblank_disable_immediate && -> > + drm_vblank_offdelay > 0 && -> > + !atomic_read(&vblank->refcount)) +> > + ����drm_vblank_offdelay > 0 && +> > + ����!atomic_read(&vblank->refcount)) > > + vblank_disable_fn((unsigned long)vblank); > > + -> > spin_unlock_irqrestore(&dev->event_lock, irqflags); -> > -> > return true; -> > -- +> > � spin_unlock_irqrestore(&dev->event_lock, irqflags); +> > � +> > � return true; +> > --� > > 2.14.1 > -- > Ben Hutchings > Software Developer, Codethink Ltd. -- -Ville Syrjälä +Ville Syrj�l� Intel OTC diff --git a/a/content_digest b/N1/content_digest index 5a21e8c..3282b3f 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -27,9 +27,9 @@ "> \n" "> commit 75cff0837c14eaf632efabb8d7ab9eec6394d20d\n" "> Author: Chris Wilson <chris@chris-wilson.co.uk>\n" - "> Date:\302\240\302\240\302\240Fri Mar 24 17:30:58 2017 +0000\n" + "> Date:\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275Fri Mar 24 17:30:58 2017 +0000\n" "> \n" - "> \302\240\302\240\302\240\302\240drm: Make the decision to keep vblank irq enabled earlier\n" + "> \303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275drm: Make the decision to keep vblank irq enabled earlier\n" "\n" "Why are we backporting optimizations anyway?\n" "\n" @@ -39,7 +39,7 @@ "> > On vblank instant-off systems, we can get into a situation where the cost\n" "> > of enabling and disabling the vblank IRQ around a drmWaitVblank query\n" "> > dominates. And with the advent of even deeper hardware sleep state,\n" - "> > touching registers becomes ever more expensive.\302\240\302\240However, we know that if\n" + "> > touching registers becomes ever more expensive.\303\257\302\277\302\275\303\257\302\277\302\275However, we know that if\n" "> > the user wants the current vblank counter, they are also very likely to\n" "> > immediately queue a vblank wait and so we can keep the interrupt around\n" "> > and only turn it off if we have no further vblank requests queued within\n" @@ -68,9 +68,9 @@ "> > query loop. There's that comment in vblank_disable_and_save:\n" "> > \n" "> > \"* Skip this step if there isn't any high precision timestamp\n" - "> > \302\240* available. In that case we can't account for this and just\n" - "> > \302\240* hope for the best.\n" - "> > \302\240*/\n" + "> > \303\257\302\277\302\275* available. In that case we can't account for this and just\n" + "> > \303\257\302\277\302\275* hope for the best.\n" + "> > \303\257\302\277\302\275*/\n" "> > \n" "> > With the disable happening after leading edge of vblank (== hw counter\n" "> > increment already happened) but before the vblank counter/timestamp\n" @@ -88,61 +88,61 @@ "> > \n" "> > Testcase: igt/kms_vblank\n" "> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>\n" - "> > Cc: Ville Syrj\303\244l\303\244 <ville.syrjala@linux.intel.com>\n" + "> > Cc: Ville Syrj\303\257\302\277\302\275l\303\257\302\277\302\275 <ville.syrjala@linux.intel.com>\n" "> > Cc: Daniel Vetter <daniel@ffwll.ch>\n" - "> > Cc: Michel D\303\244nzer <michel@daenzer.net>\n" + "> > Cc: Michel D\303\257\302\277\302\275nzer <michel@daenzer.net>\n" "> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n" "> > Cc: Dave Airlie <airlied@redhat.com>,\n" "> > Cc: Mario Kleiner <mario.kleiner.de@gmail.com>\n" - "> > Reviewed-by: Ville Syrj\303\244l\303\244 <ville.syrjala@linux.intel.com>\n" + "> > Reviewed-by: Ville Syrj\303\257\302\277\302\275l\303\257\302\277\302\275 <ville.syrjala@linux.intel.com>\n" "> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>\n" "> > Link: http://patchwork.freedesktop.org/patch/msgid/20170315204027.20160-1-chris@chris-wilson.co.uk\n" "> > Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>\n" "> > ---\n" - "> > \302\240drivers/gpu/drm/drm_irq.c | 14 ++++++++++++--\n" - "> > \302\2401 file changed, 12 insertions(+), 2 deletions(-)\n" + "> > \303\257\302\277\302\275drivers/gpu/drm/drm_irq.c | 14 ++++++++++++--\n" + "> > \303\257\302\277\302\2751 file changed, 12 insertions(+), 2 deletions(-)\n" "> > \n" "> > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c\n" "> > index 8090989185b2..4ddbc49125cd 100644\n" "> > --- a/drivers/gpu/drm/drm_irq.c\n" "> > +++ b/drivers/gpu/drm/drm_irq.c\n" "> > @@ -1271,9 +1271,9 @@ void drm_vblank_put(struct drm_device *dev, unsigned int pipe)\n" - "> > \302\240\tif (atomic_dec_and_test(&vblank->refcount)) {\n" - "> > \302\240\t\tif (drm_vblank_offdelay == 0)\n" - "> > \302\240\t\t\treturn;\n" + "> > \303\257\302\277\302\275\tif (atomic_dec_and_test(&vblank->refcount)) {\n" + "> > \303\257\302\277\302\275\t\tif (drm_vblank_offdelay == 0)\n" + "> > \303\257\302\277\302\275\t\t\treturn;\n" "> > -\t\telse if (dev->vblank_disable_immediate || drm_vblank_offdelay < 0)\n" "> > +\t\telse if (drm_vblank_offdelay < 0)\n" - "> > \302\240\t\t\tvblank_disable_fn((unsigned long)vblank);\n" + "> > \303\257\302\277\302\275\t\t\tvblank_disable_fn((unsigned long)vblank);\n" "> > -\t\telse\n" "> > +\t\telse if (!dev->vblank_disable_immediate)\n" - "> > \302\240\t\t\tmod_timer(&vblank->disable_timer,\n" - "> > \302\240\t\t\t\t\302\240\302\240jiffies + ((drm_vblank_offdelay * HZ)/1000));\n" - "> > \302\240\t}\n" + "> > \303\257\302\277\302\275\t\t\tmod_timer(&vblank->disable_timer,\n" + "> > \303\257\302\277\302\275\t\t\t\t\303\257\302\277\302\275\303\257\302\277\302\275jiffies + ((drm_vblank_offdelay * HZ)/1000));\n" + "> > \303\257\302\277\302\275\t}\n" "> > @@ -1902,6 +1902,16 @@ bool drm_handle_vblank(struct drm_device *dev, unsigned int pipe)\n" - "> > \302\240\twake_up(&vblank->queue);\n" - "> > \302\240\tdrm_handle_vblank_events(dev, pipe);\n" - "> > \302\240\n" + "> > \303\257\302\277\302\275\twake_up(&vblank->queue);\n" + "> > \303\257\302\277\302\275\tdrm_handle_vblank_events(dev, pipe);\n" + "> > \303\257\302\277\302\275\n" "> > +\t/* With instant-off, we defer disabling the interrupt until after\n" - "> > +\t\302\240* we finish processing the following vblank. The disable has to\n" - "> > +\t\302\240* be last (after drm_handle_vblank_events) so that the timestamp\n" - "> > +\t\302\240* is always accurate.\n" - "> > +\t\302\240*/\n" + "> > +\t\303\257\302\277\302\275* we finish processing the following vblank. The disable has to\n" + "> > +\t\303\257\302\277\302\275* be last (after drm_handle_vblank_events) so that the timestamp\n" + "> > +\t\303\257\302\277\302\275* is always accurate.\n" + "> > +\t\303\257\302\277\302\275*/\n" "> > +\tif (dev->vblank_disable_immediate &&\n" - "> > +\t\302\240\302\240\302\240\302\240drm_vblank_offdelay > 0 &&\n" - "> > +\t\302\240\302\240\302\240\302\240!atomic_read(&vblank->refcount))\n" + "> > +\t\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275drm_vblank_offdelay > 0 &&\n" + "> > +\t\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275\303\257\302\277\302\275!atomic_read(&vblank->refcount))\n" "> > +\t\tvblank_disable_fn((unsigned long)vblank);\n" "> > +\n" - "> > \302\240\tspin_unlock_irqrestore(&dev->event_lock, irqflags);\n" - "> > \302\240\n" - "> > \302\240\treturn true;\n" - "> > --\302\240\n" + "> > \303\257\302\277\302\275\tspin_unlock_irqrestore(&dev->event_lock, irqflags);\n" + "> > \303\257\302\277\302\275\n" + "> > \303\257\302\277\302\275\treturn true;\n" + "> > --\303\257\302\277\302\275\n" "> > 2.14.1\n" "> -- \n" "> Ben Hutchings\n" "> Software Developer, Codethink Ltd.\n" "\n" "-- \n" - "Ville Syrj\303\244l\303\244\n" + "Ville Syrj\303\257\302\277\302\275l\303\257\302\277\302\275\n" Intel OTC -a4c538ef7f2c1c8e7061daa9ca6add029bbef151583afc1168bd843c59f0e1f7 +34170b11c5d4b934e9c9ab0359eacc29e131790407e108b91dde02c95ba89484
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.