From: Emil Velikov <emil.l.velikov@gmail.com>
To: Dylan Baker <dylan@pnwbakers.com>
Cc: ML mesa-dev <mesa-dev@lists.freedesktop.org>,
ML dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [RFC libdrm 0/2] Replace the build system with meson
Date: Thu, 16 Mar 2017 23:35:33 +0000 [thread overview]
Message-ID: <CACvgo50JKYTzx_Z3NekW4mAHnHwgC0KvSykGeaSsvCw2wHssoQ@mail.gmail.com> (raw)
In-Reply-To: <cover.e8e842b8033df81940a390ca2ff2e624cf9ec2d2.1489699291.git-series.dylan@pnwbakers.com>
Hi Dylan,
On 16 March 2017 at 21:25, Dylan Baker <dylan@pnwbakers.com> wrote:
> Why bother, and why would we want this? │~
>
> First it's written in python, which means the potential developer base
> is massive. And it provides a recursive view for humans, but a
> non-recursive view for the system. This is the best of both worlds,
> humans can organize the build system in a way that makes sense, and the
> machine gets a non-recursive build system. It also uses ninja rather
> than make, and ninja is faster than make inherently. Meson is also a
> simpler syntax than autotools or cmake it's not Turing Complete by
> design nor does it expose python, again, by design. This allows meson
> itself to be reimplemented in a another language if python becomes a
> dead-end or a bottle-neck. It also makes it much easier to understand
> what the build system is doing.
>
> What's different about using meson?
>
> Well, apart from a faster builds and less magic in the build system? The
> configure flags are different, it uses -D<opt>=<value> more like cmake
> than the --enable or --with flags of autotools, although oddly it uses
> --prefix and friends when calling meson, but not with mesonconf, there's
> a bug opened on this. Meson also doesn't support in-tree builds at all;
> all builds are done out of tree. It also doesn't provide a "make dist"
> target, fortunately there's this awesome tool called git, and it
> provides a "git archive" command that does much the same thing. Did I
> mention it's fast?
>
> Here are the performance numbers I see on a 2 core 4 thread SKL, without
> initial configuration, and building out of tree (using zsh):
>
> For meson the command line is:
> time (meson build -Dmanpages=true && ninja -C build)
>
> For autotools the command line is:
> time (mdkir build && cd build && ../autotools && make -j5 -l4)<Paste>
>
> meson (cold ccache): 13.37s user 1.74s system 255% cpu 5.907 total
> autotools (cold ccache): 26.50s user 1.71s system 129% cpu 21.835 total
> meson (hot ccache): 2.13s user 0.39s system 154% cpu 1.633 total
> autotools (hot ccache): 13.93s user 0.73s system 102% cpu 14.259 total
>
> That's ~4x faster for a cold build and ~10x faster for a hot build.
>
> For a make clean && make style build with a hot cache:
> meson: 4.64s user 0.33s system 334% cpu 1.486 total
> autotools: 7.93s user 0.32s system 167% cpu 4.920 total
>
> Why bother with libdrm?
>
> It's a simple build system, that could be completely (or mostly
> completely) be ported in a very short time, and could serve as a tech
> demo for the advantages of using meson to garner feedback for embarking
> on a larger project, like mesa (which is what I'm planning to work on
> next).
>
> tl;dr
>
> I wrote this as practice for porting Mesa, and figured I might as well
> send it out since I wrote it.
>
> It is very likely that neither of these large patches will show up on the
> mailing list, but this is available at my github:
> https://github.com/dcbaker/libdrm wip/meson
>
While I can see you're impressed by Meson, I would kindly urge you to
not use it here. As you look closely you can see that one could
trivially improve the times, yet the biggest thing is that most of the
code in libdrm must go ;-)
As the port is not 1:1 wrt the autoconf one, the performance numbers
above are comparing apples to oranges.
If you/others are unhappy with the build times of libdrm - poke me on
IRC. I will give you some easy tips on how to improve those.
You have some good python knowledge - I would kindly urge you to
improve/rewrite the slow and/or hacky python scripts we have in mesa.
This is a topic that was mentioned multiple times, and a part where
everyone will be glad to see some progress.
Thanks
Emil
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2017-03-16 23:35 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-16 21:25 [RFC libdrm 0/2] Replace the build system with meson Dylan Baker
2017-03-16 21:25 ` [RFC libdrm 1/2] Port build system to meson Dylan Baker
2017-03-16 21:25 ` [RFC libdrm 2/2] remove autotools build Dylan Baker
2017-03-16 21:32 ` [RFC libdrm 0/2] Replace the build system with meson Ilia Mirkin
2017-03-16 21:57 ` Dylan Baker
2017-03-17 10:05 ` Neil Armstrong
2017-03-16 22:36 ` Marek Olšák
2017-03-16 23:11 ` Dylan Baker
2017-03-17 1:53 ` Marek Olšák
2017-03-17 4:15 ` Dylan Baker
2017-03-17 21:18 ` Marek Olšák
2017-03-22 17:26 ` Jose Fonseca
2017-03-22 17:50 ` [Mesa-dev] " Marek Olšák
2017-03-16 23:35 ` Emil Velikov [this message]
2017-03-17 0:21 ` Dylan Baker
2017-03-17 0:41 ` Emil Velikov
2017-03-17 2:03 ` Jason Ekstrand
2017-03-17 2:28 ` Brian Paul
2017-03-22 17:59 ` Jose Fonseca
2017-03-22 20:57 ` [Mesa-dev] " Dylan Baker
2017-03-22 22:02 ` Rob Clark
2017-03-22 22:15 ` Eric Anholt
2017-03-22 22:33 ` Dylan Baker
2017-03-24 14:03 ` Jose Fonseca
2017-03-24 14:22 ` [Mesa-dev] " Daniel Stone
2017-03-24 15:47 ` Jose Fonseca
2017-03-25 20:15 ` [Mesa-dev] " Rob Clark
2017-03-24 16:23 ` Bas Nieuwenhuizen
2017-03-17 4:12 ` Dylan Baker
2017-03-17 6:02 ` Jonathan Gray
2017-03-20 13:55 ` [Mesa-dev] " Emil Velikov
2017-03-20 18:30 ` Matt Turner
2017-03-20 19:39 ` [Mesa-dev] " Emil Velikov
2017-03-20 21:28 ` Timothy Arceri
2017-03-20 21:38 ` Jason Ekstrand
2017-03-21 5:00 ` Jonathan Gray
2017-03-21 16:00 ` Matt Turner
2017-03-23 12:23 ` Jonathan Gray
2017-03-23 18:31 ` Emil Velikov
2017-03-21 15:57 ` [Mesa-dev] " Matt Turner
2017-03-21 17:16 ` Emil Velikov
2017-03-21 18:06 ` Matt Turner
2017-03-21 18:56 ` [Mesa-dev] " Emil Velikov
2017-03-21 19:08 ` Jason Ekstrand
2017-03-21 19:10 ` [Mesa-dev] " Matt Turner
2017-03-22 17:16 ` Emil Velikov
2017-03-24 20:59 ` Chad Versace
2017-03-24 20:44 ` [Mesa-dev] " Chad Versace
2017-03-28 16:59 ` Emil Velikov
2017-03-28 23:19 ` Timothy Arceri
2017-03-21 5:10 ` Jonathan Gray
2017-03-21 16:11 ` [Mesa-dev] " Matt Turner
2017-03-24 16:58 ` randyf
2017-03-20 19:29 ` Rob Clark
2017-03-21 14:44 ` Jani Nikula
2017-03-21 15:13 ` Grazvydas Ignotas
2017-03-21 15:15 ` Ilia Mirkin
2017-03-21 16:16 ` Dylan Baker
2017-03-21 16:22 ` Dylan Baker
2017-03-22 4:23 ` [Mesa-dev] " Jonathan Gray
2017-03-22 8:24 ` Jani Nikula
2017-03-22 21:05 ` Dylan Baker
2017-03-23 8:13 ` Jani Nikula
2017-03-21 16:50 ` Kai Wasserbäch
2017-03-21 17:34 ` Dylan Baker
2017-03-21 18:36 ` [Mesa-dev] " Kai Wasserbäch
2017-03-21 21:16 ` Dylan Baker
2017-03-22 16:40 ` Alex Deucher
2017-03-22 17:07 ` Rob Clark
2017-03-22 20:10 ` [Mesa-dev] " Dylan Baker
2017-03-22 21:48 ` Rob Clark
2017-03-23 21:56 ` Greg Hackmann
2017-03-23 22:14 ` Colin Cross
2017-03-23 23:56 ` Dylan Baker
2017-03-24 0:03 ` [Mesa-dev] " Colin Cross
2017-03-24 16:54 ` Dylan Baker
2017-03-23 1:18 ` [Mesa-dev] " Jonathan Gray
2017-03-23 1:38 ` Rob Clark
2017-03-24 13:42 ` Jose Fonseca
2017-03-24 17:13 ` Dylan Baker
2017-03-24 17:51 ` Eric Anholt
2017-03-24 18:34 ` [Mesa-dev] " Daniel Stone
2017-03-24 19:10 ` Kristian Høgsberg
2017-03-24 19:44 ` Jose Fonseca
2017-03-24 20:08 ` Kristian Høgsberg
2017-03-24 21:16 ` Jose Fonseca
2017-03-24 21:20 ` Jason Ekstrand
2017-03-24 21:34 ` [Mesa-dev] " Rob Clark
2017-03-25 1:25 ` Dylan Baker
2017-03-24 21:09 ` [Mesa-dev] " Rob Clark
2017-03-23 11:39 ` Emil Velikov
2017-03-23 17:54 ` Dylan Baker
2017-03-25 1:06 ` Kenneth Graunke
2017-03-22 22:30 ` [Mesa-dev] " Eric Anholt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CACvgo50JKYTzx_Z3NekW4mAHnHwgC0KvSykGeaSsvCw2wHssoQ@mail.gmail.com \
--to=emil.l.velikov@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=dylan@pnwbakers.com \
--cc=mesa-dev@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).