• Kirill Smelkov's avatar
    [media] vivi: Optimize precalculate_line() · d40fbf8d
    Kirill Smelkov authored
    precalculate_line() is not very high on profile, but it calls expensive
    gen_twopix(), so let's polish it too:
        call gen_twopix() only once for every color bar and then distribute
        the result.
    before:
        # cmdline : /home/kirr/local/perf/bin/perf record -g -a sleep 20
        #
        # Samples: 46K of event 'cycles'
        # Event count (approx.): 15574200568
        #
        # Overhead          Command         Shared Object
        # ........  ...............  ....................
        #
            27.99%             rawv  libc-2.13.so          [.] __memcpy_ssse3
            23.29%           vivi-*  [kernel.kallsyms]     [k] memcpy
            10.30%             Xorg  [unknown]             [.] 0xa75c98f8
             5.34%           vivi-*  [vivi]                [k] gen_text.constprop.6
             4.61%             rawv  [vivi]                [k] gen_twopix
             2.64%             rawv  [vivi]                [k] precalculate_line
             1.37%          swapper  [kernel.kallsyms]     [k] read_hpet
    after:
        # cmdline : /home/kirr/local/perf/bin/perf record -g -a sleep 20
        #
        # Samples: 45K of event 'cycles'
        # Event count (approx.): 15561769214
        #
        # Overhead          Command         Shared Object
        # ........  ...............  ....................
        #
            30.73%             rawv  libc-2.13.so          [.] __memcpy_ssse3
            26.78%           vivi-*  [kernel.kallsyms]     [k] memcpy
            10.68%             Xorg  [unknown]             [.] 0xa73015e9
             5.55%           vivi-*  [vivi]                [k] gen_text.constprop.6
             1.36%          swapper  [kernel.kallsyms]     [k] read_hpet
             0.96%             Xorg  [kernel.kallsyms]     [k] read_hpet
             ...
             0.16%             rawv  [vivi]                [k] precalculate_line
             ...
             0.14%             rawv  [vivi]                [k] gen_twopix
    (i.e. gen_twopix and precalculate_line overheads are almost gone)
    Signed-off-by: default avatarKirill Smelkov <kirr@mns.spb.ru>
    Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    d40fbf8d
vivi.c 34.5 KB