Hi,

El dom, 3 ago 2025 a las 2:34, tom ehlert via Freedos-devel (<
freedos-devel@lists.sourceforge.net>) escribió:

> > I agree that you would get better performance when
> > raw writes just UPDATE buffer contents instead of
> > triggering full cache INVALIDATION.
> full cache INVALIDATION is only needed because the BUFFERS cache
> might have stale data that are not yet on disk.
> It's a brute force clutch, not a real solution.
>


> The solution should be to use the same BUFFERS cache for both
> internal mk_dir etc. operations, and external lfn_mkdir operations.
>

 > I suggest that raw writes should not FILL buffers,

> > but only UPDATE buffers for those sectors which
> > already happen to be in the buffers.
>
> This happens automagically in the current context as DOSLFN newer
> writes sector data, but always read/modify/writes data.
> So data written to are already in the cache, read microseconds before.
>
> i.e. treat external int2526_handler reads/writes like internal mk_dir
> reads/writes, while observing the int21_fat32 (dir, fat, data)
> destination. basically cache dir and fat calls, don't cache data or
> unknown.
>

I think it would be interesting to know if/how MS-DOS kernel handles this:
if the same bug appears using MS-DOS or MS-DOS is able to handle this
properly (preferably MS-DOS 6.2 or under). (I can't check it myself, I am
currently away for holidays). As if it doesn't show the bug, would be a
clear indication that it is probably handled this way by Microsoft too.

Aitor
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to