Re: Cygwin multithreading performance

2015-12-18 Thread Achim Gratz
Kacper Michajlow writes: > I recently noticed that Cygwin multithreading is very inefficient. I > was repacking few git repositories and with Cygwin's git, it spawns > threads but they are so badly synchronized that there is no speed gain > over one thread and possible loose because of the

Re: Cygwin multithreading performance

2015-12-08 Thread Mark Geisert
(Maybe cygwin-developers is a better list for this? It's pretty obscure.) Here are some mutex lock stats I've been talking about providing. These are from the OP's original testcase 'git repack -a -f' running over a clone of the newlib-cygwin source tree. Run on a 2-core, 4-HT machine under

Re: Cygwin multithreading performance

2015-12-08 Thread Corinna Vinschen
On Dec 8 16:34, Corinna Vinschen wrote: > On Dec 8 02:51, Mark Geisert wrote: > > (Maybe cygwin-developers is a better list for this? It's pretty obscure.) > > Yes, cygwin-developers is fine since it's gory implementation details. > > > Here are some mutex lock stats I've been talking about

Re: Cygwin multithreading performance

2015-12-08 Thread Corinna Vinschen
On Dec 8 02:51, Mark Geisert wrote: > (Maybe cygwin-developers is a better list for this? It's pretty obscure.) Yes, cygwin-developers is fine since it's gory implementation details. > Here are some mutex lock stats I've been talking about providing. These are > from the OP's original

Re: Cygwin multithreading performance

2015-12-06 Thread Mark Geisert
Kacper Michajlow wrote: 2015-12-05 23:40 GMT+01:00 Mark Geisert : It looks like we're going to have to compare actual pthread_mutex_lock() implementations. Inspecting source is nice but I don't want to be chasing a mirage so I really hope there's a pthread_mutex_lock()

Re: Cygwin multithreading performance

2015-12-06 Thread Kacper Michajlow
2015-12-06 9:02 GMT+01:00 Mark Geisert : > Kacper Michajlow wrote: >> >> 2015-12-05 23:40 GMT+01:00 Mark Geisert : >>> >>> It looks like we're going to have to compare actual pthread_mutex_lock() >>> implementations. Inspecting source is nice but I don't want to

Re: Cygwin multithreading performance

2015-12-05 Thread Kacper Michajlow
2015-12-05 11:51 GMT+01:00 Mark Geisert : > Mark Geisert wrote: >> >> Corinna Vinschen wrote: >>> >>> On Nov 23 16:54, Mark Geisert wrote: John Hein wrote: > > Mark Geisert wrote at 23:45 -0800 on Nov 22, 2015: > > Corinna Vinschen wrote: > > > On Nov

Re: Cygwin multithreading performance

2015-12-05 Thread Kacper Michajlow
2015-12-05 14:07 GMT+01:00 Kacper Michajlow : > 2015-12-05 11:51 GMT+01:00 Mark Geisert : >> Mark Geisert wrote: >>> >>> Corinna Vinschen wrote: On Nov 23 16:54, Mark Geisert wrote: > > John Hein wrote: >> >> Mark Geisert wrote at

Re: Cygwin multithreading performance

2015-12-05 Thread Mark Geisert
Mark Geisert wrote: Corinna Vinschen wrote: On Nov 23 16:54, Mark Geisert wrote: John Hein wrote: Mark Geisert wrote at 23:45 -0800 on Nov 22, 2015: > Corinna Vinschen wrote: > > On Nov 21 01:21, Mark Geisert wrote: > [...] so I wonder if there's > >> some unintentional serialization

Re: Cygwin multithreading performance

2015-12-05 Thread Mark Geisert
Kacper Michajlow wrote: 2015-12-05 11:51 GMT+01:00 Mark Geisert : Mark Geisert wrote: In the OP's very good testcase the most heavily contended locks, by far, are those internal to git's builtin/pack-objects.c. I plan to show actual stats after some more cleanup, but I did

Re: Cygwin multithreading performance

2015-12-05 Thread Kacper Michajlow
2015-12-05 23:40 GMT+01:00 Mark Geisert : > Kacper Michajlow wrote: >> >> 2015-12-05 11:51 GMT+01:00 Mark Geisert : >>> >>> Mark Geisert wrote: >>> In the OP's very good testcase the most heavily contended locks, by far, >>> are >>> those internal to git's

Re: Cygwin multithreading performance

2015-11-26 Thread Corinna Vinschen
On Nov 23 16:54, Mark Geisert wrote: > John Hein wrote: > >Mark Geisert wrote at 23:45 -0800 on Nov 22, 2015: > > > Corinna Vinschen wrote: > > > > On Nov 21 01:21, Mark Geisert wrote: > > > [...] so I wonder if there's > > > >> some unintentional serialization going on somewhere, but I don't

Re: Cygwin multithreading performance

2015-11-26 Thread Mark Geisert
Corinna Vinschen wrote: On Nov 23 16:54, Mark Geisert wrote: John Hein wrote: Mark Geisert wrote at 23:45 -0800 on Nov 22, 2015: > Corinna Vinschen wrote: > > On Nov 21 01:21, Mark Geisert wrote: > [...] so I wonder if there's > >> some unintentional serialization going on somewhere,

Re: Cygwin multithreading performance

2015-11-23 Thread John Hein
Mark Geisert wrote at 23:45 -0800 on Nov 22, 2015: > Corinna Vinschen wrote: > > On Nov 21 01:21, Mark Geisert wrote: > [...] so I wonder if there's > >> some unintentional serialization going on somewhere, but I don't know yet > >> how I could verify that theory. > > > > If I'm allowed to

Re: Cygwin multithreading performance

2015-11-23 Thread Mark Geisert
John Hein wrote: Mark Geisert wrote at 23:45 -0800 on Nov 22, 2015: > Corinna Vinschen wrote: > > On Nov 21 01:21, Mark Geisert wrote: > [...] so I wonder if there's > >> some unintentional serialization going on somewhere, but I don't know yet > >> how I could verify that theory. >

Re: Cygwin multithreading performance

2015-11-22 Thread Mark Geisert
Corinna Vinschen wrote: On Nov 21 01:21, Mark Geisert wrote: [...] so I wonder if there's some unintentional serialization going on somewhere, but I don't know yet how I could verify that theory. If I'm allowed to make an educated guess, the big serializer in Cygwin are probably the calls to

Re: Cygwin multithreading performance

2015-11-21 Thread Mark Geisert
Kacper Michajlow wrote: Thanks for reply. And sorry for being not specific enough before. 'git gc' is a driver which runs various git command to do cleanup in repository. Though I'm mostly concerned about the code I linked. Instead of 'git gc' it is better to test directly 'git repack -a -f' and

Re: Cygwin multithreading performance

2015-11-21 Thread Corinna Vinschen
On Nov 21 01:21, Mark Geisert wrote: > Kacper Michajlow wrote: > >Thanks for reply. And sorry for being not specific enough before. 'git > >gc' is a driver which runs various git command to do cleanup in > >repository. Though I'm mostly concerned about the code I linked. > >Instead of 'git gc' it

Re: Cygwin multithreading performance

2015-11-20 Thread Kacper Michajlow
2015-11-19 21:24 GMT+01:00 Mark Geisert : > Kacper Michajlow wrote: >> >> I recently noticed that Cygwin multithreading is very inefficient. I >> was repacking few git repositories and with Cygwin's git, it spawns >> threads but they are so badly synchronized that there is no

Re: Cygwin multithreading performance

2015-11-19 Thread Mark Geisert
Kacper Michajlow wrote: I recently noticed that Cygwin multithreading is very inefficient. I was repacking few git repositories and with Cygwin's git, it spawns threads but they are so badly synchronized that there is no speed gain over one thread and possible loose because of the overhead. On

Cygwin multithreading performance

2015-11-13 Thread Kacper Michajlow
Hello, I recently noticed that Cygwin multithreading is very inefficient. I was repacking few git repositories and with Cygwin's git, it spawns threads but they are so badly synchronized that there is no speed gain over one thread and possible loose because of the overhead. On my machine I got