Re: [ros-dev] MSVC and GCC Windows Buildslaves are back - old ISOs are not

2016-10-18 Thread Neo Love

On 2016-10-18 01.51, Colin Finck wrote:
> Am 14.10.2016 um 05:55 schrieb Neo Love:
>>> * We buy additional HDDs every year and continue to host them ourselves
>>> just next to the newer ISOs.
>> Sounds right to me..  HDDs are not too expensive.
>> I'm willing to pitch in, despite my decrepit pension.
>> Speaking of which, maybe we could all pitch in to build a new buildserver?
> Having additional servers is not a problem of hardware costs, but of
> hosting and logistics.

Oh.. It sounded like there was a hardware issue, since you didn't have 
enough RAM
and the build server was too slow.  And yes, of course running costs 
will always
dominate over hardware investment (which can be cheap using Asian sources).

> Our critical services are all hosted on dedicated servers at a decent
> hosting provider. These servers handle standard tasks very well.
> ...
> Therefore, we also bought some specialized servers. They have always
> been hosted in countries where electricity and fast internet connections
> are cheap and where we have a project member to take care of them.

Yes, web/FTP/mail services  can be had quite cheaply these days.
It makes sense to move the bandwidth load for e.g. web off our own machines.
I just thought that all build server(s) and test server(s) were our own
machines due to the special programming requirements they have.

South Korea, Ukraine, and Russia have well developed internet
infrastructure at low/competitive cost (per my research at least).
Hmm.. Guess that's why you pointed sideways at Aleksey :)

> But as you can imagine, this can never match the availability of a real
> hosting provider.

Availability, yes.. But requirement-wise I doubt a provider like
AWS or Akamai is a feasible way to go (economically).
They would most likely charge an arm and a leg to get all our
special programming on their (virtual) machines, even if
they would be able to manage it (in an agnostic manner).

> In the next few days, I'm expecting some more servers to be set up at
> our project member's location. If that turns out well, we can think
> about getting additional storage for them.

Rented machines? Or is someone lending us the use of hardware
(and/or bandwidth) out of the goodness of their hearts? :)

> I'm still open for alternative/failover hosting solutions though as this
> shouldn't depend on a single location and person.

Thailand, where I live, have a consumer peak speed of 58 Mb/s
(avg ~10), and electricity is fairly cheap; 6-13 US cent/kWh.
(A home 10M/640k ADSL connect like mine is ~16 US $/month.)
If you'd like, I can look into cost and availability for a fixed line or 
fiber.

The idea with a self-built CD changer archive was something I just
came up with since I like to tinker myself, and thought it would be
fun to build.. Never mind ;)

Best Regards
L.

>
>
> - Colin
>
> ___
> Ros-dev mailing list
> Ros-dev@reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev

___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Re: [ros-dev] MSVC and GCC Windows Buildslaves are back - old ISOs are not

2016-10-17 Thread Colin Finck
Am 14.10.2016 um 05:55 schrieb Neo Love:
>> * We buy additional HDDs every year and continue to host them ourselves
>> just next to the newer ISOs.
> 
> Sounds right to me..  HDDs are not too expensive.
> I'm willing to pitch in, despite my decrepit pension.
> 
> Speaking of which, maybe we could all pitch in to build a new buildserver?
> I built my latest workstation for just over 500 euro.
> (Xeon E3 3.1GHz, 16 GB RAM, 2x1 TB HDD)

Having additional servers is not a problem of hardware costs, but of
hosting and logistics.

Our critical services are all hosted on dedicated servers at a decent
hosting provider. These servers handle standard tasks very well. But as
soon as we have special requirements (e.g. lots of RAM, HDD space or
multiple physical servers for VM testing), it is impossible or too
expensive.
Therefore, we also bought some specialized servers. They have always
been hosted in countries where electricity and fast internet connections
are cheap and where we have a project member to take care of them. But
as you can imagine, this can never match the availability of a real
hosting provider.

In the next few days, I'm expecting some more servers to be set up at
our project member's location. If that turns out well, we can think
about getting additional storage for them.
I'm still open for alternative/failover hosting solutions though as this
shouldn't depend on a single location and person.


- Colin

___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Re: [ros-dev] MSVC and GCC Windows Buildslaves are back - old ISOs are not

2016-10-13 Thread Neo Love

On 2016-10-05 03.10, Colin Finck wrote:
> Thanks to Dmitry Chapyshev's generous donation of rare FB-DIMM memory
> modules, our Buildserver has enough RAM for the Win7 buildslave VM now.
(y)

> Unfortunately, our HDDs were also lacking space, so I had to move the
> public "bootcd_old" folder from iso.reactos.org to another (private)
> place. It contained BootCD ISOs from 2009 to 2012, totalling 421GB.
> Any idea how to deal with them in the long run? I can basically think of
> 4 possibilities:
>
> * We remove ISOs older than 4 years, because nobody would really do
> regression-testing with them.

A reasonable option, imo.

> * We buy additional HDDs every year and continue to host them ourselves
> just next to the newer ISOs.

Sounds right to me..  HDDs are not too expensive.
I'm willing to pitch in, despite my decrepit pension.

Speaking of which, maybe we could all pitch in to build a new buildserver?
I built my latest workstation for just over 500 euro.
(Xeon E3 3.1GHz, 16 GB RAM, 2x1 TB HDD)

> * We find a free file hosting service for OSS projects that can cope
> with these amounts of data. Not sure SF.net is the right choice here..
>
> * We choose a paid data storage service like Amazon AWS.

Oh god, no.. Amazon is a nightmare security-wise.
It's practically impossible to define reasonable firewall rules for
Amazon clients, since AWS shifts their IP range around all the time.

> As always, comments are very welcome!

And if fun is permissible..
Someone who likes to tinker could have fun building a CD changer archive :)
Some Al rails, stepper motors, drive belts, servos, a normal BR burner 
drive, and
an Arduino or two to control the mechanics and take commands from the PC.
E.g. pater noster stores don't require too much space.
While it would be slow to fetch old stuff, it would practically never 
run out of storage space.

Best Regards
L.

>
>
> - Colin
>
> ___
> Ros-dev mailing list
> Ros-dev@reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev

___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Re: [ros-dev] MSVC and GCC Windows Buildslaves are back - old ISOs are not

2016-10-06 Thread Colin Finck
Am 05.10.2016 um 19:48 schrieb Christoph von Wittich:
> What about deduplication?

We would need to test if this yields any good results on our already
compressed data. Even if we extract the currently 7zip-compressed ISOs,
the "reactos.cab" inside the ISOs would still be a compressed file.

What deduplication solution do you suggest anyway? ZFS?


- Colin

___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Re: [ros-dev] MSVC and GCC Windows Buildslaves are back - old ISOs are not

2016-10-05 Thread Christoph von Wittich

What about deduplication?

Am 04.10.2016 um 22:10 schrieb Colin Finck:

Hi all,

Thanks to Dmitry Chapyshev's generous donation of rare FB-DIMM memory
modules, our Buildserver has enough RAM for the Win7 buildslave VM now.

I've fired it up and while builds are much slower than before, they are
at least being done again!
Note that Doxygen, ISO hosting, and all three buildslaves are on a
single HDD-backed server right now, so don't expect any performance
miracles.
I'm counting on Aleksey here to get us our remaining servers back this
month :)

Unfortunately, our HDDs were also lacking space, so I had to move the
public "bootcd_old" folder from iso.reactos.org to another (private)
place. It contained BootCD ISOs from 2009 to 2012, totalling 421GB.
Any idea how to deal with them in the long run? I can basically think of
4 possibilities:

* We remove ISOs older than 4 years, because nobody would really do
regression-testing with them.

* We buy additional HDDs every year and continue to host them ourselves
just next to the newer ISOs.

* We find a free file hosting service for OSS projects that can cope
with these amounts of data. Not sure SF.net is the right choice here..

* We choose a paid data storage service like Amazon AWS.

As always, comments are very welcome!


- Colin

___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev




___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Re: [ros-dev] MSVC and GCC Windows Buildslaves are back - old ISOs are not

2016-10-04 Thread Nuno Brito

Hi Colin,

On our side at triplecheck we are increasing the infrastructure, exactly 
with the intention of filling it up with software. Would happily make 
available 1Tb of long term storage or more as needed to save the old 
ISOs at no cost.


The only nuisance is that we can't give direct access to the storage for 
security reasons (it is cut off from the Internet). Still, it is 
possible to download through a request mechanism that puts the needed 
files on a public server for download.


We are negotiating the infrastructure growth, around the 1st of November 
should be possible to confirm that we can host these files.


Nuno


On 04/10/16 21:10, Colin Finck wrote:

Hi all,

Thanks to Dmitry Chapyshev's generous donation of rare FB-DIMM memory
modules, our Buildserver has enough RAM for the Win7 buildslave VM now.

I've fired it up and while builds are much slower than before, they are
at least being done again!
Note that Doxygen, ISO hosting, and all three buildslaves are on a
single HDD-backed server right now, so don't expect any performance
miracles.
I'm counting on Aleksey here to get us our remaining servers back this
month :)

Unfortunately, our HDDs were also lacking space, so I had to move the
public "bootcd_old" folder from iso.reactos.org to another (private)
place. It contained BootCD ISOs from 2009 to 2012, totalling 421GB.
Any idea how to deal with them in the long run? I can basically think of
4 possibilities:

* We remove ISOs older than 4 years, because nobody would really do
regression-testing with them.

* We buy additional HDDs every year and continue to host them ourselves
just next to the newer ISOs.

* We find a free file hosting service for OSS projects that can cope
with these amounts of data. Not sure SF.net is the right choice here..

* We choose a paid data storage service like Amazon AWS.

As always, comments are very welcome!


- Colin

___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev



--
Managing Director, TripleCheck GmbH
twitter @nn81 | UK +44 7453 648423 | DE +49 162 327 2929
http://triplecheck.net

___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Re: [ros-dev] msvc build update

2010-02-03 Thread Ros Arm
Hello,

Would you care to comment on unefficient regarding the trap rewrite, please? 
The code is more efficient than previous assembly code, and more finely tuned 
than Windows' own code, which wasn't updated since 1989 when it was first 
designed (and is full of non-pairing, hazardous operations that were efficient 
only on a 486).

I also resent the hackish statement.

Perhaps GCC Extended Assembly is hard to understand? I would be happy to walk 
you through it.

Finally, in any team project, it is efficient to subscribe to SVN notifications 
and keep track of the project status. This way it would've been clear that a 
trap rewrite was in progress, and we could have worked together.

-r

 Hi,
 
  
 
 I'm being asked about the msvc build and decided to answer in the list to
 keep you all informed on the status.
 
  
 
 Today I submitted a non working update to my branch:
 
 svn://svn.reactos.org/reactos/branches/jcatena-branch
 
 useful for reference for those interested in msc builds.
 
  
 
 Before I got a svn branch where to commit, I got ntoskrnl built by msvc9 and
 booting to desktop, 
 
 Based on build 44678. This is not synchable with svn, but I have put it in
 my server if someone wants to take a look:
 
 ftp://diwaves.com/reactos/ntos_44678_local.zip
 
  
 
 After I got a svn branch, I started to make the same happen without changing
 
 so much. Unfortunately this was in the middle of the trap handling rewrite.
 
 This is being done in a really weird, unportable, hackish and unefficient
 way,
 
 and I had a lot of problems to have the port booting. Finally, after much
 more
 
 work than expected, I got the port working but with some weird temporary
 
 hacking I didn't like, and then wanted to sync with more current version,
 
 only to find that the trap handlers were substantially changed again, in an
 
 even more unportable way. So instead of keep debugging and hacking a code
 that
 
 i would pretty much drop at the end, I started rewriting it yesterday and I
 
 expect to have it working in less than a week. This will save efforts at the
 end.
 
  
 
 Initially I wanted to commit only a working branch, but since it's taking
 time
 
 and other devs may benefit from what's done even if it is not complete,
 
 i decided to have the working not synchable version based on 44678 available
 
 at my server, and the non booting svn branch r45369 commited.
 
  
 
 I recommend taking a look at platf.h and cpu-c.h, these files contain
 platform
 
 and compiler dependent definitions and macros, that make most inline
 assembly
 
 and compiler conditionals elsewhere unnecessary.
 
  
 
 Hope you find this useful.
 
  
 
 Jose Catena
 
 DIGIWAVES S.L.
 
  
 
 ___
 Ros-dev mailing list
 Ros-dev@reactos.org
 http://www.reactos.org/mailman/listinfo/ros-dev



___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


Re: [ros-dev] msvc build update

2010-02-03 Thread Jose Catena
Hi,

Don't feel offended, the port to c is a very good thing and indeed better in
the most part than the previous asm implementation. I value your work very
much.
But there are some aspects badly implemented:
1) It is not possible to write a good stub in an inline function nor in a
regular macro due to c preprocessor limitations. Your implementation trust
the optimizer to remove constant conditionals, but it does not work as well
as you may think. Have you seen the generated code? It has a lot of
unnecessary branching. I have implemented it as an x-macro, where I can use
the preprocessor to select the options to be generated and it does not
generate any run time conditional branching.
2) You have added many inline assembly parts in several files that should be
kept as portable as possible. These things are better put together in
architecture dependent files/directories. Furthermore, most are unnecessary,
my single trap stub in a single x-macro replaces most of your inlines. 
3) Since the pointer to the trap frame is passed to handlers, why do you
pass as extra parameters information that is already there? Access to
members of the KTRAP_FRAME is just as fast as access to local variables or
parameters, but saves on additional copies and allow more efficient register
usage. Furthermore using regparam(3) for functions called from inline
assembly, when actually only one param was needed, was really a very bad
idea. And you pass the same parameters to child handlers in cascade, again
and again. This is very unefficient. Today I simplified the syscall and
fastsyscall handlers removing a lot unnecessary parameter copying and
cascading, saving a lot of cycles and memory, while making it much easier to
read and understand.
4) Why did you resort to code patching to encode the PKINTERRUPT parameter,
instead of generating a static variable named together with the stub, for
example? Wasn't it hackish? I hope you understand that you won't save even a
cycle that way, so why to use such an unportable and complex method?
 
The worst thing is the indiscriminate and spread use of inline assembly and
compiler specific features. Please think in placing such things in platform
specific includes and try to make them as general and reusable as possible,
instead of making the code base very difficult to port and maintain.

Please take this as constructive criticism and not as any personal offense.
We all can always learn better if we can accept criticism.
 
Jose Catena
DIGIWAVES S.L.



___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


Re: [ros-dev] MSVC

2009-12-30 Thread Jose Catena
-Original Message-
From: ros-dev-boun...@reactos.org [mailto:ros-dev-boun...@reactos.org] On
Behalf Of KJK::Hyperion

 Post them on bugzilla, assign them to me and Cc sginsb...@reactos.org


Well, I submitted my first bug  patch to bugzilla.
Before I submit more, I'd like to know if I did it correctly. I have many
and I'll wait to know if should submit them this way.
Couldn't cc to sginsb...@reactos.org, bugzilla doesn't know him.
Based on the large amount and severity of bugs in the msvc build perhaps
nobody is using it but me, plz let me know if you don't want any fixes to
msvc build submitted.

The submitted bug  patch is as follows:

Bug# 5071 intrin_i.h: sgdt  lgdt fixed for msvc

In intrin_i.h there are two inline functions that are defined differently
based on __GNUC__ or _MSV_VER. The _MSC_VER ones make ntoskrnl crash early
on boot.
As these functions were written, sgd  lgdt stored and loaded the gdt
to/from the pointer variable passed instead of the location the pointer
points to.
Fixed and tested.
Patch follows:

intrin_i.h

Ke386GetGlobalDescriptorTable(OUT PVOID Descriptor)
{
-   __asm sgdt [Descriptor]
+   __asm {
+   mov ebx, Descriptor
+   sgdt [ebx];
+   }
}

Ke386SetGlobalDescriptorTable(IN PVOID Descriptor)
{
-   __asm lgdt [Descriptor]
+   __asm {
+   mov ebx, Descriptor;
+   lgdt [ebx];
+   }
}

Jose Catena
DIGIWAVES S.L.



___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


Re: [ros-dev] MSVC

2009-12-30 Thread Alex Ionescu
I recommend changing the convention such that Descriptor is a pointer to the 
pointer -- this way the functions can remain one-liners and not introduce 
register side-effects (especially since you're choosing ebx -- trashing a 
nonvolatile).

On 2009-12-30, at 11:46 AM, Jose Catena wrote:

 -Original Message-
 From: ros-dev-boun...@reactos.org [mailto:ros-dev-boun...@reactos.org] On
 Behalf Of KJK::Hyperion
 
 Post them on bugzilla, assign them to me and Cc sginsb...@reactos.org
 
 
 Well, I submitted my first bug  patch to bugzilla.
 Before I submit more, I'd like to know if I did it correctly. I have many
 and I'll wait to know if should submit them this way.
 Couldn't cc to sginsb...@reactos.org, bugzilla doesn't know him.
 Based on the large amount and severity of bugs in the msvc build perhaps
 nobody is using it but me, plz let me know if you don't want any fixes to
 msvc build submitted.
 
 The submitted bug  patch is as follows:
 
 Bug# 5071 intrin_i.h: sgdt  lgdt fixed for msvc
 
 In intrin_i.h there are two inline functions that are defined differently
 based on __GNUC__ or _MSV_VER. The _MSC_VER ones make ntoskrnl crash early
 on boot.
 As these functions were written, sgd  lgdt stored and loaded the gdt
 to/from the pointer variable passed instead of the location the pointer
 points to.
 Fixed and tested.
 Patch follows:
 
 intrin_i.h
 
 Ke386GetGlobalDescriptorTable(OUT PVOID Descriptor)
 {
 - __asm sgdt [Descriptor]
 + __asm {
 + mov ebx, Descriptor
 + sgdt [ebx];
 + }
 }
 
 Ke386SetGlobalDescriptorTable(IN PVOID Descriptor)
 {
 - __asm lgdt [Descriptor]
 + __asm {
 + mov ebx, Descriptor;
 + lgdt [ebx];
 + }
 }
 
 Jose Catena
 DIGIWAVES S.L.
 
 
 
 ___
 Ros-dev mailing list
 Ros-dev@reactos.org
 http://www.reactos.org/mailman/listinfo/ros-dev

Best regards,
Alex Ionescu


___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


Re: [ros-dev] MSVC

2009-12-22 Thread Jose Catena
As intended in my last post, better work and proof than discussion. Do you
agree?
You made too many assumptions, forget for a while that you already know
everything if you want to learn something.
What an audio workstation needs is that the audio events don't delay beyond
a predictable maximum. The processing of such events will be always a
fraction of the delay. So if the maximum latency is for example 1ms, lower
priority rt tasks won't be delayed more than a fraction of a millisecond for
this cause. This does not necessarily affect throughput of anything, and
anyway never without a good reason. An audio workstation will configure the
audio driver to have higher priority DPCs than disk, and disk higher than
network, USB, video... A network server will give priority to NIC then to
disk then whatever. Is the current scheme better, when all NIC, audio
driver, disk will suffer because the mouse DPCs? Proper RT scheduling
without anything violating it (like DPCs) can only help in every scenario,
how couldn't it? How could the current scheme be more efficient in latency,
throughput or anything than this one? Are you joking or what?
The rt priorities don't have much to do with throughput, the tasks demanding
lowest latency are the ones that will also do its job very quickly. If a rt
task does not finish in a very limited time, it does not comply and its
priority will be changed to time sharing range, this is one of the keys in
my scheme. The useful statistics are very easy to gather efficiently.
The threaded DPCs are not a solution when it depends on all drivers
employing it (which is not a reality and will not be), and does not address
the need of configuration of the priorities scheme by the user. Nor Win7
solves the risks of user configurable real time priorities.
MMCSS is not that thing, it is just a try to provide a reserved high
priority class to user mode, but it is anyway below *any* and *all* DPCs.
What happened with WaveRT in Vista is a demonstration of the absolute lack
of knowledge of what realtime scheduling is and the effects of latency, and
being separate of the scheduler itself, is a proof of the lack of
understanding in the very same regard. And very related to the scheduler
too. If it was so hard to learn for them after endless discussions, I
wouldn't expect you would a more complex timings relationship, much less
knowing your I know it all attitude.
You make me laugh, so if my scheduler performs better than the one in Win7
(not only better than the ones in ReactOS) you will support its inclusion?
LOL.
My aim is well beyond Win7 performance anyway. I'll work on it, and if I
success as I expect, you will support its inclusion or not as you wish. But
please don't ask me to discuss in that tone and attitude, we all know you're
the smartest guy with the biggest dick and I won't waste time challenging
you, ok?
I don't know Arun Kishan, who is he? MS is so huge... Most ppl I treated is
in the wdm area. Also as a team of audio developers leaded by Ron Kuper
(Cakewalk) we have been working with them at all levels. After a decade or
so the improvements are valuable, we got the KS interfaces published, the
nasty priority inversion algorithm removed, an so much more. And still, so
far from the right thing. If I did alone a scheduler that solved elegantly
and efficiently the same problems (and mine is not as large as yours by
far), how a company with the resources of MS doesn't? It is not that they
don't have great people, it is not that they don't get well founded and
documented requests, it is not a black hand... is the very nature of
marketing, every user will find some icons nicer than others, but hardly
understands what low latency means. If not, look how you saw at it: if MS
didn't how you...? If a developer skilled in windows internals doesn't know
about real time concepts...
Shields down. It is fun but I don't want to waste time in useless
discussions. I'll keep working as I said, and you all will know how it goes.
The only big obstacle in the way is the very limited time I have for it, not
any of arguments. Not that changing the DPC handling and sync will be easy,
but the model I'm trying to implement works great, I have already used it in
very different projects. This is not a fool idea of the latest frickie.
Back to msvc build fixing...
Cheers,

Jose Catena
DIGIWAVES S.L.


-Original Message-
From: ros-dev-boun...@reactos.org [mailto:ros-dev-boun...@reactos.org] On
Behalf Of Alex Ionescu
Sent: Tuesday, 22 December, 2009 06:36
To: ReactOS Development List
Subject: Re: [ros-dev] MSVC

Sounds like you want make Threaded DPCs (which exist to fill the niche you
talked about) the default model. Are you aware of Threaded DPCs? Why not
just go down that route?

Your idea of targeting DPC-heavy drivers to lower their throughput is what
MMCSS attempted (and still does) to do back in Vista -- it partly lead to a
catastrophe as suddenly network card traffic on heavy audio I/O machines
dropped

Re: [ros-dev] MSVC

2009-12-22 Thread Ged Murphy
Jose Catena wrote:

 If it was so hard to learn for them after endless discussions, I
 wouldn't expect you would a more complex timings relationship, much less
 knowing your I know it all attitude.
 You make me laugh, so if my scheduler performs better than the one in Win7
 (not only better than the ones in ReactOS) you will support its inclusion?
 LOL.
 My aim is well beyond Win7 performance anyway. I'll work on it, and if I
 success as I expect, you will support its inclusion or not as you wish.
But
 please don't ask me to discuss in that tone and attitude, we all know
you're
 the smartest guy with the biggest dick and I won't waste time challenging
 you, ok?

Can I ask which part of Alex's email you found offensive?
I'm confused as to why you felt the need be rude and offensive.

Please don't turn our mailing list into a place to pick arguments, this is
what IRC is for.

Ged.





___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


Re: [ros-dev] MSVC

2009-12-22 Thread KJK::Hyperion
Jose Catena wrote:
 I could post a more concise description of the plan, but what I intend
 ultimately to achieve is a fully working and tested ntoskrnl that could run
 on regular xp or s2003 too (to verify full compatibility).

As a general rule, we prefer fixes to features, and even then we prefer
features found in Windows to entirely new features. As an example of why
we try to avoid new features: running DPCs in pre-emptible real-time
threads raises serious issues, like the risk of deadlocks between high
priority real-time applications and DPCs that used to run at a higher
priority but don't anymore. You'll need a framework for compatibility
settings to make it work with existing drivers: at that point you'll
have solved one problem and created two new ones

If you want to make a lasting contribution to the project, work on
something that's aligned to the goals of the project

 So maybe instead
 of writing the details and discussing it, we may wait till I have it working
 and speak again afterwards. This way I won't be wasting the time of anyone
 else until the objectives are achieved and can be verified.

One doesn't usually start a discussion about something and at the same
time dismiss the need to discuss it. If you came here to brag, you came
to the wrong place

___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


Re: [ros-dev] MSVC

2009-12-22 Thread Alexandru Lovin

 One doesn't usually start a discussion about something and at the same
 time dismiss the need to discuss it. If you came here to brag, you came
 to the wrong place


May I kindly suggest that he came here to ask if you are interested in what
he wants to do ? Just to know if he has the support of the team. That's what
it looks like from a non-programmer's point of view.
___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Re: [ros-dev] MSVC

2009-12-22 Thread Jose Catena
Ø  May I kindly suggest that he came here to ask if you are interested in
what he wants to do ? Just to know if he has the support of the team. That's
what it looks like from a non-programmer's point of view. 

 

1)  I was simply asking if I should submit fixes and how.

2)  I was telling what I’m doing for your information. I didn’t ask for
integration of my project in ReactOS, I’ll only ask for it if I finish it
successfully.

3)  No, I’m not asking for support in that sense, I intend to write the
new scheduler alone. I don’t ignore that it will take a lot of work, but I
couldn’t expect any involvement by the ReactOS team.

4)   I didn’t ask for discussion or help. I’m well aware of the
difficulties and solutions, well beyond the well intentioned objections
raised.

 

I hope this clears any confusion and ends any discussion on the subject.

 

Jose Catena

DIGIWAVES S.L.

 

___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Re: [ros-dev] MSVC

2009-12-22 Thread KJK::Hyperion
Jose Catena wrote:
 well beyond the well intentioned objections raised.

Sorry, the position of official project asshole is already taken. Try
maybe applying for respectful newbie instead

___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


Re: [ros-dev] MSVC

2009-12-21 Thread KJK::Hyperion
Jose Catena wrote:
 Also, I don't know if I should submit patches for msvc build,

I mantain the makefile-based builder, which is the core build backend
AND supports Microsoft compilers (sort of). Ged Murphy maintains the new
Visual Studio project generator (which is based on the makefile-based
builder), while the old project generator is a total orphan

 I suppose I
 should even if it is not the official way, because I find msvc/gnuc
 conditionals there, but the msvc part is broken in many places.

yes, it's supposed to work. Yes, we accept fixes. No, you can't link
with the Microsoft linker when using the makefile-based builder (yet),
because I didn't write the build rules for it (yet). Yes, you will be
able to, eventually, and then use the makefile-based Visual Studio projects

 I fixed
 ntoskrnl and its dependencies issues (many in crt) for msvc. Please let me
 know if I should submit such patches or not, and what would be the proper
 way to submit these and any other patches. I suppose that initially I should
 send them to someone for review, right?

Post them on bugzilla, assign them to me and Cc sginsb...@reactos.org

 I'm very pleased with the improvements in kd and windbg support. I was
 working on it and found that I wasted some efforts. No problem, I'll check
 svn more frequently for changes, but I'd like to know if there is a list
 somewhere with a description of who is currently doing or planning to do
 what, to avoid doing the same as someone else again.

sginsb...@reactos.org and tkreu...@reactos.org are your men. I'd still
recommend using IRC though, as most of the developers hang out there

 and then incorporating to it a new high performance scheduler

Alex Ionescu will wear your spleen like a hat for this. Discuss it with
him first if you want the remotest possibility of your scheduler being
accepted in the tree


___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


Re: [ros-dev] MSVC

2009-12-21 Thread Alex Ionescu
If your new implementation:

1) Is better than what Windows does today (hint: it's nearly lockless in Win 7, 
and O(1) since 2003) in every single way (ie: not sacrificing 50% of desktop 
users for 10% of server users).

AND

2) Maintains full compatibility with Windows applications (and I expect you to 
TEST this), drivers, etc in every way.

I promise you I will wholeheartedly support its inclusion in ReactOS.

In fact, I will do even more than just that.

On 2009-12-21, at 5:53 PM, Jose Catena wrote:

 Post them on bugzilla, assign them to me and Cc sginsb...@reactos.org
 
 Thanks you. I'll post all together after tests completion, including
 verification of that I didn't break rosbe/gnuc build in any way.
 
 sginsb...@reactos.org and tkreu...@reactos.org are your men. I'd still
 recommend using IRC though, as most of the developers hang out there
 
 Well, perhaps I'll try IRC sometime, but based in previous experiences, I
 don't think it's an efficient communication channel for things like this.
 I hope we could manage well enough with these e-mail lists or direct
 e-mail with these that you kindly provided.
 
 Alex Ionescu will wear your spleen like a hat for this. Discuss it with
 him first if you want the remotest possibility of your scheduler being
 accepted in the tree
 
 Hehehe, I won't discuss much with him. I'll send to this list an
 explanation
 of what I intend to do, why, and how. The possibility of overcoming
 the real-time scheduling limitations of windows (mostly due to DPC handling,
 whose mere existence is one of the effects of an incapable scheduler), is
 in my eyes one of the most appealing aspects of reactos. I have been
 developing mostly for automation systems and pro audio, and I know well
 the problem and how to solve it. If a windows compatible os fixes such
 limitations, which is what I intend to do, I can assure you those industries
 will be very interested.
 In any case, if it is not accepted initially, perhaps at a later time, after
 you can see a working implementation, much simpler than current one,
 yet much more powerful and efficient. But if it's still not accepted,
 I'm still willing to do it privately and I hope in such a case you won't
 have
 any problem with me using reactos sources for that.
 
 Best regards and thanks you very much for answering my questions.
 
 Jose Catena
 DIGIWAVES S.L.
 
 
 
 ___
 Ros-dev mailing list
 Ros-dev@reactos.org
 http://www.reactos.org/mailman/listinfo/ros-dev

Best regards,
Alex Ionescu


___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


Re: [ros-dev] MSVC

2009-12-21 Thread Jose Catena
I'm very glad you hear you saying that, Alex.
Those are indeed requirements my implementation will have to comply with,
and I think it is totally feasible.
It should improve realtime class latency very meaningfully without making
any other parameter worse, although I also expect to achieve improvements in
other parameters too.
What I intend to do is to fully comply with the real time paradigm, by using
some very efficient solutions I have been using to eliminate the risks of rt
priorities misuses without breaking the paradigm. For me that's the easy
thing (and proven already), although some related ppl at MS had a very hard
time to understand it.
The real challenge is to handle DPCs as preemptable real time threads, fully
respecting assigned rt priorities. This is what would fix the problem
definitely, but since currently DPCs are not preemtable, there is a
possibility of breaking some drivers because access serialization or sync
issues. But I expect this possibility will be in real world very low, as
there should not be interactions between DPCs created by different drivers
out of system control, and ultimately, the new scheduler will be very
flexible, allowing to configure each driver's DPCs parameters separately, so
DPC preemption could be disabled for each particular driver or for all of
them. Probably the default config will be fully compatible with current
behavior, but I expect that enabling DPC preemption by lowering the
priorities of selected driver's DPCs should work fine with the most or
almost all drivers.
I could post a more concise description of the plan, but what I intend
ultimately to achieve is a fully working and tested ntoskrnl that could run
on regular xp or s2003 too (to verify full compatibility). So maybe instead
of writing the details and discussing it, we may wait till I have it working
and speak again afterwards. This way I won't be wasting the time of anyone
else until the objectives are achieved and can be verified.

P.D: Win7 has again improved the scheduler in the right direction (and fixed
a related big mistake in the Vista's WaveRT model), but the DPC thing still
kills the latency and they don't want to change that. I already discussed it
with some key ppl at MS: a few understood it, but even those didn't think
there were good chances of convincing decision makers anytime soon. It is
considered a very low priority, if not null at all. But for all pro audio
manufacturers, and some other niches like automation and control, it is a
top priority.

Best regards,

Jose Catena
DIGIWAVES S.L.

-Original Message-
From: ros-dev-boun...@reactos.org [mailto:ros-dev-boun...@reactos.org] On
Behalf Of Alex Ionescu
Sent: Tuesday, 22 December, 2009 04:10
To: ReactOS Development List
Subject: Re: [ros-dev] MSVC

If your new implementation:

1) Is better than what Windows does today (hint: it's nearly lockless in Win
7, and O(1) since 2003) in every single way (ie: not sacrificing 50% of
desktop users for 10% of server users).

AND

2) Maintains full compatibility with Windows applications (and I expect you
to TEST this), drivers, etc in every way.

I promise you I will wholeheartedly support its inclusion in ReactOS.

In fact, I will do even more than just that.



___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


Re: [ros-dev] MSVC

2009-12-21 Thread Alex Ionescu
Sounds like you want make Threaded DPCs (which exist to fill the niche you 
talked about) the default model. Are you aware of Threaded DPCs? Why not just 
go down that route?

Your idea of targeting DPC-heavy drivers to lower their throughput is what 
MMCSS attempted (and still does) to do back in Vista -- it partly lead to a 
catastrophe as suddenly network card traffic on heavy audio I/O machines 
dropped to a mere fraction of full network bandwidth on a GigE network. What 
techniques have you developed to address these issues?

Other DPC throttling on I/O leads to priority inversion and inheritance 
problems, due to the heavy inter-dependency of Windows services and drivers. 
How do you plan on solving these challenges?

Most scalability bottlenecks in the 2003 scheduler are related to the 
dispatcher lock -- multiple highly threaded real time applications would 
encounter increased latency on many-core systems. How do you intend to solve 
this issue without removing the lock as well (which would cause multiple 
layer/version violations in ReactOS and take nearly as much time as removing it 
in Win7 took)?

How do you intend to balance real-time thread usage with multiple user/TS 
scenarios?

Also, I'm not sure what WaveRT/scheduler mode you are talking about. WaveRT was 
mostly changed to properly support Event-Mode in Win7, which is an issue 
entirely separate to scheduler changes.

Which key people have you spoken with? Have you spoken with Arun Kishan?

On 2009-12-21, at 11:40 PM, Jose Catena wrote:

 I'm very glad you hear you saying that, Alex.
 Those are indeed requirements my implementation will have to comply with,
 and I think it is totally feasible.
 It should improve realtime class latency very meaningfully without making
 any other parameter worse, although I also expect to achieve improvements in
 other parameters too.
 What I intend to do is to fully comply with the real time paradigm, by using
 some very efficient solutions I have been using to eliminate the risks of rt
 priorities misuses without breaking the paradigm. For me that's the easy
 thing (and proven already), although some related ppl at MS had a very hard
 time to understand it.
 The real challenge is to handle DPCs as preemptable real time threads, fully
 respecting assigned rt priorities. This is what would fix the problem
 definitely, but since currently DPCs are not preemtable, there is a
 possibility of breaking some drivers because access serialization or sync
 issues. But I expect this possibility will be in real world very low, as
 there should not be interactions between DPCs created by different drivers
 out of system control, and ultimately, the new scheduler will be very
 flexible, allowing to configure each driver's DPCs parameters separately, so
 DPC preemption could be disabled for each particular driver or for all of
 them. Probably the default config will be fully compatible with current
 behavior, but I expect that enabling DPC preemption by lowering the
 priorities of selected driver's DPCs should work fine with the most or
 almost all drivers.
 I could post a more concise description of the plan, but what I intend
 ultimately to achieve is a fully working and tested ntoskrnl that could run
 on regular xp or s2003 too (to verify full compatibility). So maybe instead
 of writing the details and discussing it, we may wait till I have it working
 and speak again afterwards. This way I won't be wasting the time of anyone
 else until the objectives are achieved and can be verified.
 
 P.D: Win7 has again improved the scheduler in the right direction (and fixed
 a related big mistake in the Vista's WaveRT model), but the DPC thing still
 kills the latency and they don't want to change that. I already discussed it
 with some key ppl at MS: a few understood it, but even those didn't think
 there were good chances of convincing decision makers anytime soon. It is
 considered a very low priority, if not null at all. But for all pro audio
 manufacturers, and some other niches like automation and control, it is a
 top priority.
 
 Best regards,
 
 Jose Catena
 DIGIWAVES S.L.
 
 -Original Message-
 From: ros-dev-boun...@reactos.org [mailto:ros-dev-boun...@reactos.org] On
 Behalf Of Alex Ionescu
 Sent: Tuesday, 22 December, 2009 04:10
 To: ReactOS Development List
 Subject: Re: [ros-dev] MSVC
 
 If your new implementation:
 
 1) Is better than what Windows does today (hint: it's nearly lockless in Win
 7, and O(1) since 2003) in every single way (ie: not sacrificing 50% of
 desktop users for 10% of server users).
 
 AND
 
 2) Maintains full compatibility with Windows applications (and I expect you
 to TEST this), drivers, etc in every way.
 
 I promise you I will wholeheartedly support its inclusion in ReactOS.
 
 In fact, I will do even more than just that.
 
 
 
 ___
 Ros-dev mailing list
 Ros-dev@reactos.org
 http://www.reactos.org/mailman/listinfo/ros-dev

Best