[ros-dev] Communication Problems re 47514 & co.

Ros Arm ros.arm at reactos.org
Tue Jun 1 22:38:52 CEST 2010


Hello,

First I was asked if a certain developer could talk to me regarding ARM3. I said yes, never heard back, and then saw commits done to pfnlist.c. While interesting and useful code, some communication would've been nice in order to talk about the goals, since much of that code is in flux (I feel bad when someone improves a function that I will later remove, as two of the improved functions are only temporary -- the changes to the other functions will remain, obviously). Normally, this would not have been a problem, if not for the strange formatting and the fact this code was now broken and causing a boot regression.

I showed up in the #reactos-dev channel and instructed developers on how to fix the problem: remove the entire function and use MiInsertPageInFreeList instead, or fix MiInitializePagingLists to perform its work at DISPATCH_LEVEL instead, by acquiring the PFN lock as it should do.

None of this was done, instead "janderwald", in 47514, "Fixed" the ASSERT by saying "Any IRQL lower than DISPATCH_LEVEL" is okay. Janderwald, whoever you are, do you even understand this code? Are you even a kernel-mode developer? Does it make to you that the code would need to assert for low IRQL? The whole point is to validate that the PFN lock is being held. Even if you are not a kernel-mode dev, isn't it clear that all the other assertions are also checking for DISPATCH_LEVEL+?

And even if that's not clear, I had written down the solution in the #reactos-dev channel, expecting that probably not many people would figure it out.

So I guess some lessons to learn for this project:

1) If you modify someone's code, make sure you test your changes (and preferably don't mess up the formatting) so their code is not now blamed for a boot regression.
2) If someone tells you how to fix their code after it's been messed up, apply the fix.
3) If you choose to roll your own fix, write something useful instead of breaking the function (logic-wise) even more.

Again, I'm afraid the problem is most of you are students and don't have work ethics of real employees -- this seems to be the root of many problems this project has had since the last 2 years I've been watching and working on the ARM port.

Next steps:

- Janderwald: remove your ASSERT hack. Either 1) Remove the ASSERT (stop checking for an invariant that doesn't happen) or 2) Fix the caller (so the invariant holds)
- Arthur: changes are appreciated, but let's talk more so you don't end up improving dead code.

Carry on!

-r



More information about the Ros-dev mailing list