I would move to the Win8+ HAL Model -- a single HAL for APIC, ACPI with
runtime support for UEFI (if present) and MP (if present).
If people still want to run on a PIC VM (why???) or old computer, then we
can also maintain the HAL PIC x86 for UP.
Hence there would only be 2 HALs.
Best regards,
Alex Ionescu
On Mon, Dec 11, 2017 at 1:07 AM, Colin Finck <colin(a)reactos.org> wrote:
> Am 11.12.2017 um 01:18 schrieb Hermès BÉLUSCA-MAÏTO:> If you basically
> put all the HALs into one, then you obtain bloated stuff (which remains
> in memory for the whole life of the OS). Example: standard HAL is 1MB
> vs. ACPI HAL which is few kBHave you actually checked what makes up this
> difference?
> Hint: hal/halx86/legacy/bus/pci_vendors.ids
>
>
> > Note that if Windows nowadays has only one hal, it's because they now
> support basically only one "architecture"/platform, namely, ACPI
> multiprocessor (to put it simple). It has its pros, but also a lot of cons.
>
> That doesn't mean we need to do the same. We can have one HAL for all
> (Pentium and newer) x86 platforms. The overhead of additional checks at
> boot-up is negligible. That should be a solution for 99% of the people
> out there. The rest may still go and trim down our HAL to their needs.
>
> But let's not pretend we can maintain multiple x86 HALs for all x86
> computers out there. Do you really want to test X HALs with Y different
> systems? Ensure that a legacy HAL runs on a modern ACPI system? What
> would be the point?
>
>
> > Besides this, I've a question about your observation that in the APIC
> hal (not ACPI) there's different implementation of
> HalpCalibrateStallExecution and HalpInitializePICs /
> HalpInitializeLegacyPIC . Isn't it precisely because these stuff are
> completely different from the standard PICs used in platforms for which the
> standard HAL (and possibly the ACPI HAL) are used?
>
> Absolutely not! You need to reprogram the standard PICs also on an APIC
> system, and this is precisely what both functions do. Put them into a
> diff tool to see for yourself.
>
> The same goes for timers. Even with the introduction of ACPI Timers,
> Local APIC Timers, and Time-Stamp Counters, you still need a traditional
> one (like RTC or PIT) for calibration at system startup. Simply because
> the newer ones don't run at a known fixed frequency.
> The Legacy HAL successfully employs an algorithm based on the RTC while
> the APIC HAL unsuccessfully tries to use the PIT.
>
>
> > Actually we should, because the detection might not work (of course in
> our simple case "ACPI UP/MP" vs. "Standard", it's simple, but think about
> other platforms where there can be subtle differences)
>
> Tell me about a single one we cannot detect and which is worth to
> support. I don't recall that we ever recommended our testers to choose a
> different HAL at setup.
>
>
> > And normally it's not the setup that decides about the HAL, but the
> bootloader.
>
> That defies your previous point about the setup initializing the
> registry depending on the HAL.
> If we can let the user select a Legacy HAL in the boot loader after
> installing with an ACPI HAL, it is also technically possible to have one
> HAL that encompasses both.
>
>
> - Colin
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
Test KVM AHK is back on its feet.
After a fight with the package update manager (bug in dnf) and a problem with the primary monitor setting,its building and testing the last push from AmineKhaldi
Kind regards, Sylvain Petreolle
Le Mardi 28 novembre 2017 23h06, Sylvain Petreolle <spetreolle(a)yahoo.fr> a écrit :
The AHK bot crashes often these days.
I uploaded a crash dump to Fedora and discovered that these crashes are due to the network emulation (SLIRP) used in KVM.
For reference, here is the opened issue : https://bugzilla.redhat.com/show_bug.cgi?id=1509589
Since bugs with previous versions of Fedora take time to be resolved, I'm upgrading the bot to Fedora 27.
Ideas to overcome the SLIRP problems are welcome.
After all, if it crashes the virtual machine, it could also be at the source of other problems.
The AHK tests show randomness in the tests that require network,related to nonblocking mode not working, but it could involve KVM too. Kind regards, Sylvain Petreolle
Hi all!
Let me invite you to the monthly status meeting taking place tomorrow,
November 29, 19:00 UTC.
As always, you will get credentials for our private IRC server shortly
before the meeting.
No agenda proposals have been submitted to me so far. If that doesn't
change, we may have a short meeting just for status reports. Please have
them ready, so we get it done quickly!
FYI, I expect the 0.4.7 Press Release to be ready tomorrow, so we can
soon send out the Press Kit and make the downloads available.
See you tomorrow!
Colin
The AHK bot crashes often these days.
I uploaded a crash dump to Fedora and discovered that these crashes are due to the network emulation (SLIRP) used in KVM.
For reference, here is the opened issue : https://bugzilla.redhat.com/show_bug.cgi?id=1509589
Since bugs with previous versions of Fedora take time to be resolved, I'm upgrading the bot to Fedora 27.
Ideas to overcome the SLIRP problems are welcome.
After all, if it crashes the virtual machine, it could also be at the source of other problems.
The AHK tests show randomness in the tests that require network,related to nonblocking mode not working, but it could involve KVM too. Kind regards, Sylvain Petreolle
IIUC we currently always build rostests, but never rosapps in CI.
Would it be possible to analyze the changed paths instead and
* enable rostests iff modules/rostests/ or sdk/ was changed
* enable rosapps iff modules/rosapps/ or sdk/ was changed?
That should speed up builds that don't change rostests, while also
making sure that changes to rosapps aren't let into master if they break
build.
If this is nontrivial I may have a look at it myself but someone would
need to point me to the right configuration/scripts please.
Thanks!
-Thomas
<span style="font-family:arial,helvetica,sans-serif; font-size:12px">Certainly not a "feature", but just that (certainly because it is only for user-mode AND the out pointer is not optional) the MS dev who introduced these functions didn't want to (or just more simply forgot to) not check for such NULL pointer.</span><br>
<span style="font-family:arial,helvetica,sans-serif; font-size:12px">And thus, if you pass NULL, it's just your fault if your app crashes.</span><br>
<span style="font-family:arial,helvetica,sans-serif; font-size:12px">And of course, since ReactOS also want to behave similarly... we don't check for NULL either!</span><br>
<br>
<span style="font-family:arial,helvetica,sans-serif; font-size:12px">H.</span>
<div class="gl_quote" style="margin-top: 20px; padding-top: 5px;">
<div class="gl_quote" style="margin-top: 20px; padding-top: 5px;">De : xxxx<br>
A : ros-dev(a)reactos.org<br>
Envoyé: mardi 31 octobre 2017 16:10<br>
Objet : Re: [ros-dev] [ros-diffs] [reactos] 01/01: CID 1206831 Dereference after null check<br>
<div class="gl_quoted">
<div dir="ltr">Seems like this API has a 'feature' where by it throws exceptions if <span style="font-size:12.8px">BytesRead is null?</span></div>
<div class="gmail_extra">
<div class="gmail_quote">On Sun, Oct 29, 2017 at 8:02 AM, Jerome Gardou <span dir="ltr"><<a href="mailto:jerome.gardou@reactos.org" target="_blank">jerome.gardou(a)reactos.org</a>></span> wrote:
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">HI,<br>
<br>
that doesn't look good, as shown by <a href="https://reactos.org/testman/compare.php?ids=56275,56276" rel="noreferrer" target="_blank">https://reactos.org/testman/co<wbr>mpare.php?ids=56275,56276</a><br>
<br>
Jérôme<br>
<br>
<br>
Le 29/10/2017 à 11:17, Samuel Serapion a écrit :
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><a href="https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b3b2a23f05e5188dc1475…" rel="noreferrer" target="_blank">https://git.reactos.org/?p=rea<wbr>ctos.git;a=commitdiff;h=b3b2a2<wbr>3f05e5188dc1475961fcd7f036f004<wbr>6d25</a><br>
<br>
commit b3b2a23f05e5188dc1475961fcd7f0<wbr>36f0046d25<br>
Author: Samuel Serapion <<a href="mailto:samcharly@hotmail.com" target="_blank">samcharly(a)hotmail.com</a>><br>
AuthorDate: Fri Oct 20 14:00:32 2017 -0400<br>
<br>
CID 1206831 Dereference after null check<br>
BytesRead is an optional out parameter and must be checked before being written to.<br>
---<br>
sdk/lib/rtl/memstream.c | 3 ++-<br>
1 file changed, 2 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/sdk/lib/rtl/memstream.c b/sdk/lib/rtl/memstream.c<br>
index 0549424ca4..8fe4169fb1 100644<br>
--- a/sdk/lib/rtl/memstream.c<br>
+++ b/sdk/lib/rtl/memstream.c<br>
@@ -185,7 +185,8 @@ RtlReadMemoryStream(<br>
Stream->Current = (PUCHAR)Stream->Current + CopyLength;<br>
- *BytesRead = CopyLength;<br>
+ if (BytesRead)<br>
+ *BytesRead = CopyLength;<br>
return S_OK;<br>
}<br>
</blockquote>
<br>
<br>
______________________________<wbr>_________________<br>
Ros-dev mailing list<br>
<a href="mailto:Ros-dev@reactos.org" target="_blank">Ros-dev(a)reactos.org</a><br>
<a href="http://www.reactos.org/mailman/listinfo/ros-dev" rel="noreferrer" target="_blank">http://www.reactos.org/mailman<wbr>/listinfo/ros-dev</a></blockquote>
</div>
</div>
<!-- PART SEPARATOR --><br>
<br>
<br>
_______________________________________________<br>
Ros-dev mailing list<br>
Ros-dev(a)reactos.org<br>
http://www.reactos.org/mailman/listinfo/ros-dev</div>
<div class="gl_quoted"> </div>
</div>
</div>