[MPlayer-dev-eng] [PATCH] Use posix_fadvise in stream_file if available

Reimar Döffinger Reimar.Doeffinger at gmx.de
Mon Nov 9 19:30:58 CET 2009


On Mon, Nov 09, 2009 at 07:02:36PM +0100, Tobias Diedrich wrote:
> Tobias Diedrich wrote:
> > > Playing something from a slow disk/device while also decoding
> > > might give something useful (sshfs over wireless maybe?).
> > 
> > I doubt it, since it does not cause more IO to take place than
> > before (vmstat does not show an increased read io rate, the kernel
> > checks for already mapped pages) and in the decoding case only a
> > miniscule amount of time will be spent on the IO.
> 
> FWIW:
> ~280ms ping, 10000Km between server and client, playing from sshfs.
> Server pipe 100Mbit, client pipe FTTH, throughput in this test about
> 600KB/s
> SDTV file this time.
> mplayer -noquiet -nosound -benchmark -frames 2000 -vo null
> 
> Without patch:
> Run1:
> BENCHMARKs: VC:   7.286s VO:   0.010s A:   0.000s Sys:  27.134s =
> 34.429s
> BENCHMARK%: VC: 21.1610% VO:  0.0284% A:  0.0000% Sys: 78.8106% =
> 100.0000%
> Run2:
> BENCHMARKs: VC:   7.297s VO:   0.010s A:   0.000s Sys:  23.840s =
> 31.147s
> BENCHMARK%: VC: 23.4264% VO:  0.0333% A:  0.0000% Sys: 76.5403% =
> 100.0000%
> Run3:
> BENCHMARKs: VC:   7.225s VO:   0.010s A:   0.000s Sys:  24.222s =
> 31.457s
> BENCHMARK%: VC: 22.9691% VO:  0.0322% A:  0.0000% Sys: 76.9987% =
> 100.0000%
> (Sys 76% means really 3% sys and the rest is iowait according to vmstat)
> 
> With patch:
> Run1:
> BENCHMARKs: VC:  10.352s VO:   0.012s A:   0.000s Sys:  85.822s =
> 96.186s
> BENCHMARK%: VC: 10.7624% VO:  0.0126% A:  0.0000% Sys: 89.2250% =
> 100.0000%
> Run2:
> BENCHMARKs: VC:  10.093s VO:   0.013s A:   0.000s Sys:  86.267s =
> 96.374s
> BENCHMARK%: VC: 10.4729% VO:  0.0140% A:  0.0000% Sys: 89.5132% =
> 100.0000%
> Run3:
> (Sys 89% means really 3% sys and the rest is idle according to vmstat)

Sys is the time that MPlayer can not account for in any way - most of
the time that's some blocking syscall, so most likely the patch
causes MPlayer to hang for for almost 60 additional seconds (out of 100)
in some syscall.

> I'd assume some bad interaction between asynchroniously asking for
> those pages and the sshfs implementation...

I have the impression fadvise is badly tested and suboptimally
implemented as of today at least.
Which kernel version did you use for testing?



More information about the MPlayer-dev-eng mailing list