Welcome, Guest. Please login or register.

Author Topic: Hyperion announces OS 3.1 update  (Read 90585 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline jsixis

  • Full Member
  • ***
  • Join Date: May 2009
  • Posts: 156
    • Show only replies by jsixis
Re: Hyperion announces OS 3.1 update
« Reply #179 from previous page: December 07, 2017, 08:20:05 PM »
every time they upgrade 3.1 they make it slower. 3.9 , I wish I had never installed it, it turned my wondefull Amigas into something really ugly to look at and so slow I haven't turned them on in 8 years.
Just swung in here today just to see if it was still alive.
 

Offline Oldsmobile_Mike

Re: Hyperion announces OS 3.1 update
« Reply #180 on: December 07, 2017, 09:34:18 PM »
Quote from: jsixis;833892
every time they upgrade 3.1 they make it slower.

That's called "adding features".  But you know, if you don't want that, I hear 1.3 is really fast. :laughing:
« Last Edit: December 07, 2017, 09:44:23 PM by Oldsmobile_Mike »
Amiga 500: 2MB Chip|16MB Fast|30MHz 68030+68882|3.9|Indivision ECS|GVP A500HD+|Mechware card reader + 8GB CF|Cocolino|SCSI DVD-RAM
Amiga 2000: 2MB Chip|136MB Fast|50MHz 68060|3.9|Indivision ECS + GVP Spectrum|Mechware card reader + 8GB CF|AD516|X-Surf 100|RapidRoad|Cocolino|SCSI CD-RW
 Amiga videos and other misc. stuff at https://www.youtube.com/CompTechMike/videos
 

Offline LoadWB

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 2901
  • Country: 00
    • Show only replies by LoadWB
Re: Hyperion announces OS 3.1 update
« Reply #181 on: December 07, 2017, 10:19:36 PM »
Sure, 3.1 with a 4 or 16 color HiRes Workbench is fast.  Noticeably faster than 256 color AGA, and 16-bit color via RTG.  Still quite usable even with the 040 I used to have in this rig (now an 060.)

To be fair, my 030 500+ can still only do a 16 color Workbench, but even with that 3.9 is quite usable.

Sorry you had such problems.  Maybe someone here can help before you put them back away -- either fix up your Amigas or take them off your hands.
 

Offline Gulliver

Re: Hyperion announces OS 3.1 update
« Reply #182 on: December 28, 2017, 01:00:16 PM »
I decided to write some preliminary documentation about Prod_Prep for those of you who would like to tinker with it, since it seems from previous posts of this thread, it is widely unknown.

This documentation is full of inacuracies, incomplete, and prone to explode :D

Prod_Prep v39.1
=========

WARNING: This is an advanced partitioning and format tool. Incorrect usage will definately damage your harddisk structure. You have been warned!

Prod_Prep is the ugly but otherwise powerful brother of HDToolBox. It comes hidden, and is never installed by default. Can be located in the 3.1 floppy disk "Install3.1", inside the C: drawer. It is a very comfortable tool for automatically deploying an entire Amiga system from within a script. It lets you partition and format harddrives in a non interactive manner by feeding the program the proper instructions from a shell/script.

It is still bound to the same limitations that the 3.1 HDToolbox has. All the same warnings about HDToolBox from 3.1 apply to Prod_Prep.

TEMPLATE:


? - list all template commands
Prod_Prep [|-] [device ] [unit ]
   [layout] [badfile ] [formatonly] [noverify] [verifyonly] [slowdown]

quit - exit this program
addpart M|K|C|%|rest
[bootable ] [dostype 0x]
[buffers ] [mask 0x]
[maxtransfer 0x] [customboot ]
[nomount]
deletepart [noerror]- delete a partition
writerdb [force] - write out rigid disk block
format [force] - format drive
verify- check for bad sectors and map out
readfs [] [version ] [dostype 0x] -read FFS from file (default l:fastfilesystem)
synch [on|off] - turn synchronous mode on or off
reselect [on|off] - turn reselect mode on or off
readrdb - reads rigid disk block from drive

Examples:

Prod_Prep layout.script device scsi.device unit 0
; In here, layout.script is a file that should only contain the list of instructions that will alter the drive 0 structure that is connected to scsi.device

; layout.script file contents example:

addpart Workbench: 200M bootable 1 dostype 0x444f5303 buffers 300
addpart Work: rest dostype 0x444f5303 buffers 300
format force
readfs Install3.1:L/FastFileSystem dostype 0x444f5303
reselect on
writerdb force
quit

; End of sample layout.script file (do not add any comments to your script file!).
; This will create 1 bootable, already formatted partition named Workbench: using FFS intl/nodircache of 200MB in size.
; Will also create another non-bootable partition called Work: using FFS intl/nodircache using the rest of the drive remaining space.
; The filesystem used will come from Install3.1:L/FastFileSystem

It is important for the correct use of this tool to understand that each single filesystem buffer will take away 1KB of ram from your system, so if you analyze the example above, you will realize, it will cost you 600KB of ram. The more buffers the faster your system will be able to handle big files, always at the cost of precious ram. As a suggestion, never go too low, to avoid potential issues, and if your system can handle the loss of 2MB of ram, just go nuts, and go for up to 2000 buffers. An average between 90 and 300 is what I would consider a good compromise between speed and ram usage. But the choice is yours, and it may largely depend on how your system is setup/used.

ADDENDUM: AMIGA FILESYSTEM DOSTYPES

FILESYSTEM, DOSTYPE, COMMENTS, LIMITS
PFS3_aio, 0x50465303, Amiga PFS file system 3. Even runs on a 68000 with kickstart v1.3!, Filename 107 chars/filesize 2GB/partition 104GB.        
PFS3_aio, 0x50445303, Amiga PFS file system 3 SCSIdirect. Even runs on a 68000 with kickstart v1.3!, Filename 107 chars/filesize 2GB/partition 104GB.
SFS0, 0x53465300, Amiga Smart File System V1, Filename 107 chars/filesize 2GB/partition 128GB.
SFS2, 0x53465302 Amiga Smart File System V2, Filename 107 chars/filesize 2GB/partition 1TB.
FFS Intl+noDirCache, 0x444f5303, This is the most commonly used and compatible one. Came with AmigaOS >= 2.0., Filename 30 chars/filesize 2GB/partition 2GB.  
FFS2, 0x444f5307, This is the one that comes with OS4. Also supports DOS 8., Filename 107 chars/filesize 2GB/partition 128TB.
FFSAIO, 0x444f5308, DOS 8. Beta status. It comes as a patch for FFS v45.13 (FFS 45.20r1)., Filename 54 chars/filesize 2GB/partition 2GB.

The scsi.device (or whatever name the harddrive interface driver has on your expanded system), has limitations of its own, and those will be imposed first, before, the ones the filesystem of your choice has.

There are many other Amiga filesystems. This does not pretend to be a complete list. Most of the missing ones, are not worth mentioning since they are not common, too old, or buggy for the average user.
« Last Edit: December 28, 2017, 01:11:06 PM by Gulliver »
 

guest11527

  • Guest
Re: Hyperion announces OS 3.1 update
« Reply #183 on: December 29, 2017, 12:01:22 AM »
Quote from: Gulliver;834440
This documentation is full of inacuracies, incomplete, and prone to explode :D
So is prod-prep. Actually, in the meantime, I "cleaned it up a little bit", or I should better say "another layer of duct tape around the code". This piece of junk (sorry, really) is contains hard-coded code for some of the early "xt.device" adapters CBM delivered, inluding a hard-coded "17 sectors per track" computation for identifying what the first track should be, and how to "format" a harddisk (which, actually, only overwrites the first "track", sorry, 17 sectors - or some other crazy number I forgot). It neither has any provision to handle disks with anything but 512 bytes per sector, and its "defect management" rather assumes that the exec device loads the defect sector list manually into the device, from the RDB of course, and checks manually for defect sectors, and manually replaces them. In the code of the device.

Well, nowadays that doesn't work like this anymore - the harddisks do defect managment themselves - but the code still builds a defect list. Of course, it must be short enough to fit into 256 (yes, really) bytes, or the code explodes.

I *hope* I cleaned up at least the worst parts of this code, and I hope it continues "working", for whatever this means for this program.
 

Offline kolla

Re: Hyperion announces OS 3.1 update
« Reply #184 on: December 29, 2017, 11:36:58 AM »
How bad does it have to be, before you throw your hands in the air and decide to rewrite from scratch? :)
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
A600/A6095
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM440 and Mac minis with MorphOS
 

Offline olsen

Re: Hyperion announces OS 3.1 update
« Reply #185 on: December 29, 2017, 12:56:37 PM »
Quote from: kolla;834466
How bad does it have to be, before you throw your hands in the air and decide to rewrite from scratch? :)


I sort of dragged Thomas into this mess, having taken on the task of fixing the last two big issues with the 2016 AmigaOS 3.1 Workbench disk set release: the hard disk partitioning software. Thomas then thoroughly reworked my rewrite, and the prodprep command is part of the package. HDToolBox had its problems (still has some, owing to how the user interface was integrated with the nuts & bolts partitioning code), but prodprep's problems had their own problems, and then some. Both HDToolBox and prodprep are based upon common code which diverged over the years and each developed different issues of their own (e.g. prodprep leaked memory like you wouldn't want to know, HDToolBox got this much better under control).

Rewriting prodprep from scratch is something that is bound to be on the agenda some day. The state of the hard disk partitioning software that ships on Workbench is such that rewrites and fixes can only yield ever diminishing returns. The nuts & bolts partitioning code just about squeaks by in getting its job done. It fails to implement the full RDB spec, it does not validate existing data structures, etc. This bit has to be redone. Once it has been redone, a saner prodprep and HDToolBox pair could be built on top of it.
 

Offline Gulliver

Re: Hyperion announces OS 3.1 update
« Reply #186 on: December 30, 2017, 12:24:18 AM »
It seems that the entire HDD management code is hanging on some nasty code leftovers and bizarre workarounds, waiting to fall apart any day.  

Not a comfortable way to code, I grant you that, and applaud you both for your bravery.
 

Offline Gulliver

Re: Hyperion announces OS 3.1 update
« Reply #187 on: December 30, 2017, 12:31:24 AM »
Validation: The mother of all evils

One of the major setbacks AmigaOS 3.1.x users will face, is that along with the benefits of large drives and newer FFS support, big volumes will definately become very common. This means that if you had to wait for quite some time before to get your volumes validated, on lets say a 500MB partition, just imagine how long will it take with a 20GB partition (and I am being really modest here).

So if in 2018 you buy, lets say for the purpose of this exercise, a new 2TB harddrive and install FFS (DOS7) on it, if a FS error occurs you will have to wait till your grandchildren finish college with your Amiga 1200 turned on all that time, to get the volume validated.

I know, clever users will still partition drives in a more reasonable manner, so that volumes dont get that large, but then is that a real solution?

And please dont tell me this is no problem, as this has been happening for decades, despite all AmigaOS developers not visualizing it as an issue. A simple fact, that illustrates the severity of the matter: many, if not all of the best third party filesystems for Amiga were originally developed to avoid the validation paradigm (PFS, SFS, etc), and they were quite succesfull, so much that many are still used and updated till this day, and are despite of some unresolved issues, still chosen over FFS which comes already installed by default.

Whilst keeping the status quo, and ignoring the issue, is the cheapest way, it will bring up lots of issues, especially with inexperienced users. Some flexibility could be certainly adopted regarding FFS. My proposed solution is a cli command to tweak FFS behaviour:

C:Validate

Changes how the filesystem manages write errors.

OPTIONS

oneatatime -Validates/fixes volumes one at a time.
novalidate -Ignores any FS errors and doesnt validate/fix them.
prevent    -Attempts to trap the reset signal so that FS write corruption may be prevented.
warn       -Detects FS errors and gives a warning but doesnt perform any repair/validation action at all.
fix        -This is the default FS behaviour: If FS error occurs, all volumes are mounted read only and validate/repair starts on all of them.
waitfix    -If FS error occurs all volume activity is halted until validate/repair is finished. Then volume activity resumes as usual.
ask        -If error in the FS occurs, the user is asked to either validate/repair, ignore or mount readonly.

some options can be combined:

the "prevent" option can be combined with any other one.
"oneatatime" can be combined with "waitfix", "ask" and obviously as mentioned before, with "prevent".
 

guest11527

  • Guest
Re: Hyperion announces OS 3.1 update
« Reply #188 on: December 30, 2017, 02:19:42 AM »
Quote from: Gulliver;834484
Validation: The mother of all evils
Is it? Actually, my Linux box validates regularly, in timely intervals. From time to time, it finds some mischief and fixes it. So the validation itself is not the problem. Slow I/O of Amiga hardware is a problem.

Quote from: Gulliver;834484
So if in 2018 you buy, lets say for the purpose of this exercise, a new 2TB harddrive and install FFS (DOS7) on it, if a FS error occurs you will have to wait till your grandchildren finish college with your Amiga 1200 turned on all that time, to get the volume validated.
It is not *quite* that bad, but it takes time. I haven't tried with 2TB (I guess probably all of Aminet will then fit ;-), but I did try with a 64GB flash disk, and this took about five minutes. Not nice, but still workable.

What I suggest is to make blocks larger. 4K is a good round number. It also makes disk IO a bit speedier, by that the bitmap smaller, and by that keeps validation time at a minimum. A large minimum, admittedly, but still smaller than with 512 byte blocks.

Quote from: Gulliver;834484
Changes how the filesystem manages write errors.
Not really a good option. If the bitmap is inconsistent, then hell can break loose as an attempt to write data to the disk might overwrite other data - or even worse - administration information.

A particular solution would be a journaling option in the file system, i.e. a file system that logs transactions and can re-play them in case the system reboots unexpectedly. Olaf planned for this for quite a while, but frankly - with the given assembly code I'm messing around with right now - this is not a serious option. This is something you may want to play with with Olaf's C implementation of the FFS because that is then handlable. Of course, it will also be a tad slower, and then all the "cycle counters" in Amiga land will complain....

So I guess you cannot have everything. Or at least not immediately.
 

Offline olsen

Re: Hyperion announces OS 3.1 update
« Reply #189 on: December 30, 2017, 08:37:27 AM »
Quote from: Gulliver;834483
It seems that the entire HDD management code is hanging on some nasty code leftovers and bizarre workarounds, waiting to fall apart any day.


If you really want to start worrying, consider how the respective scsi.device RDB handling might slip up. In the small set of tests I made so far I found that disk drivers as a rule do not handle storage devices well which use sector sizes larger than 512 bytes.

The RDB specs call for sector sizes larger than 512 bytes to be supported, but the code I have seen may fail to find the RDB header block because it may not check for larger sector sizes.
 

Offline olsen

Re: Hyperion announces OS 3.1 update
« Reply #190 on: December 30, 2017, 01:43:27 PM »
Quote from: Gulliver;834484
Validation: The mother of all evils
Only for file systems designed in around 1978, upgraded in 1987, which suffer from "scalability" limitations ;)

Quote
One of the major setbacks AmigaOS 3.1.x users will face, is that along with the benefits of large drives and newer FFS support, big volumes will definately become very common. This means that if you had to wait for quite some time before to get your volumes validated, on lets say a 500MB partition, just imagine how long will it take with a 20GB partition (and I am being really modest here).
The FFS is not well equipped to handle volumes that large.

For example, the file system startup itself will take a very long time, because once a volume is mounted, the OFS/FFS/DCFS mode requires that all the currently allocated blocks on the disk are counted. The file system literally keeps counting bits.

File sizes beyond 2,147,483,647 bytes are not entirely safe to use although in theory they might just work if you only read such files sequentially. More trouble begins if you write more than 4,294,967,295 bytes to a file. This might actually work, but the byte counters in the file header block will roll over which breaks the relationship between the reported file size, the number of blocks used as reported, the number of blocks actually used by the file. Disk repair utilities might just truncate such files during the repair operations.

Finally, the file system cannot manage volumes larger than 4,294,967,295 blocks, and it might not even know that it can't handle more than that.

The validation process itself is "just" one problem here, and by comparison, it only gives you trouble rarely, whereas the limitations of the daily file system operations are giving you trouble on a much more permanent basis :(

Quote
I know, clever users will still partition drives in a more reasonable manner, so that volumes dont get that large, but then is that a real solution?
Given the constraints (creaky design which did not evolve and improve over time, practically impossible to fix), this is what users tend to do. They cope by limiting what they can do with the file system and the media the file system uses. This started way back when Amiga hard disk drives became much larger than the comparatively "safe" 4 Gigabytes. If memory servers, that was in 1996.

Quote
And please dont tell me this is no problem, as this has been happening for decades, despite all AmigaOS developers not visualizing it as an issue.

Of course it's a problem, it's just quite difficult to fix. Actually, I have a cunning plan how to add journaling with write-ahead logging to the FFS in a backwards-compatible manner which will resolve the validation issue (well, up to a point). This is a long-term project, though. At the moment I'm working on something else that deals with file system defect repairs and data recovery.

Quote
My proposed solution is a cli command to tweak FFS behaviour:

C:Validate

Changes how the filesystem manages write errors.

OPTIONS

oneatatime -Validates/fixes volumes one at a time.
novalidate -Ignores any FS errors and doesnt validate/fix them.
prevent    -Attempts to trap the reset signal so that FS write corruption may be prevented.
warn       -Detects FS errors and gives a warning but doesnt perform any repair/validation action at all.
fix        -This is the default FS behaviour: If FS error occurs, all volumes are mounted read only and validate/repair starts on all of them.
waitfix    -If FS error occurs all volume activity is halted until validate/repair is finished. Then volume activity resumes as usual.
ask        -If error in the FS occurs, the user is asked to either validate/repair, ignore or mount readonly.

some options can be combined:

the "prevent" option can be combined with any other one.
"oneatatime" can be combined with "waitfix", "ask" and obviously as mentioned before, with "prevent".

I'd say that this would be doable from a technical point of view. Not so much from the point of view of available manpower to make it happen right now, as far as I can tell :(
 

Offline LoadWB

  • Hero Member
  • *****
  • Join Date: Jul 2006
  • Posts: 2901
  • Country: 00
    • Show only replies by LoadWB
Re: Hyperion announces OS 3.1 update
« Reply #191 on: December 30, 2017, 02:21:41 PM »
Does your cunning plan involve radishes?
 

Offline chris

Re: Hyperion announces OS 3.1 update
« Reply #192 on: December 30, 2017, 06:03:06 PM »
Quote from: Gulliver;834484

waitfix    -If FS error occurs all volume activity is halted until validate/repair is finished. Then volume activity resumes as usual.


Largely this is what SETPATCH WAITFORVALIDATE does.
I'm not sure when that was added, it definitely exists in OS4.  If a new SetPatch is planned for the 3.1 update then this option might end up in it.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

guest11527

  • Guest
Re: Hyperion announces OS 3.1 update
« Reply #193 on: December 31, 2017, 12:11:13 AM »
Quote from: chris;834515
Largely this is what SETPATCH WAITFORVALIDATE does.
I'm not sure when that was added, it definitely exists in OS4.  If a new SetPatch is planned for the 3.1 update then this option might end up in it.
It was added in 3.9, mostly because I poked Heinz about it. However, there it is only considered before the system is rebootet. It does not make sense to run into a restart while the FFS is still working on the harddisk. It originally came from MuMove4K and some other tools of mine that reboot the system as part of their function.

No, there is no need for this option in 3.1.4 anymore. SetPatch does not load any modules there.
 

Offline olsen

Re: Hyperion announces OS 3.1 update
« Reply #194 on: December 31, 2017, 09:02:54 AM »
Quote from: LoadWB;834511
Does your cunning plan involve radishes?


Definitely not ;)

The difficult part is making the journal operations work within the framework of the Amiga file system and stay backwards compatible.

There is a precedent for this kind of thing in NetBSD, for example, in the form of the WAPBL feature (WAPBL stands for 'write-ahead physical block logging'). WAPBL can keep a log for a file system separate from the file system's blocks or it can keep it on the file system itself.

The type of journaling I have in mind would be limited to metadata blocks, and it would log complete blocks rather than "compress" the individual metadata changes (e.g. change a file name, change the file size, etc.) and store them. I read a paper by the principal developer of the ext3 file system (Theodore Ts'o) in which made the convincing point that logging complete blocks can be safer than logging "compressed" metadata changes. After all, if the block which individual metadata changes are applied to already has defects, the changes will probably make things worse. Logging complete metadata blocks has been shown to do better in this respect.

Anyway, this kind of journaling could be added to my 'C' language FFS reimplementation with very little changes required. However, making the journal operations fast is tricky, and I also still have to figure out how large the journal should be. This could be an interesting project for 2018 :)

(Incidentally, did anybody actually like series 1 of Blackadder, or is it just that it pales so much in comparison to the series which followed it?)