Amiga.org

Amiga News and Community Announcements => Amiga News and Community Announcements => Amiga Software News => Topic started by: unusedunused on November 13, 2007, 05:47:18 PM

Title: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: unusedunused on November 13, 2007, 05:47:18 PM
I get the allow from Chris Hodge to reassemble and release tlsfmem with that rule to rename it and add a remark in the readme.

Currently I notice some enforcer Hits and crashes happen when run wipeout(68k memtracker) and end amigaamp.

When start Yam 2.4p1 too get enforcerHits.

Not 100% sure if that Bug in program or tlfsmem is yet.

Because Chris does not look for fixes he told me in E-Mail, so  i wait until December if maybe the situation change.

If not, i begin reassemble it.
That is possible, blitzbasic code is too reassemble.

if you reproducable problems with tlsfmem let me know.the more bad Situations know the easier it is to find the Problem.

Maybe other AOS developers can help here too.
Title: Enforcer hits from Bernd_afa
Post by: Argo on November 13, 2007, 05:50:15 PM
Bernd_afa include these enforcer hits with his submission. For brevity for those looking at the comments in threaded format, here they are.




Enforcer Hit! Bad program
Illegal WORD WRITE to: 65adadc6                 PC: 10030ef2
Data: badedeec 0000000e 00000018 6db5b5cd f7f7f7f7 00000000 109d6f64
00000022
Addr: 100407c8 f7f7f7f7 10ab2e14 109d6f5c 109ba9e8 109d6f64 10000868
10ab2dd8
Stck: 10030ef2 109ba9e8 109d6f5c 10ab2e14 badedeec 0000000f 00000030
109d6f5c
Stck: 100407c8 0000000f 00000030 00f835c4 10000868 109d6f7c 10ab2e14
715f0041
Stck: 00000004 109b5428 10030a6e 100a8034 10ab2dcc 0000001e 00000400
0000010c
Stck: 10030f0c 10ab2dcc 10961be0 00000000 00000001 0000001e 100a6ce0
0000002e
Stck: 100a6d40 00000001 109b52a0 00000000 10ab2d8c 1109f084 100a6c14
00000012
----> 10030ef2 - "tlsfmem" Hunk 0000 Offset 0000083a
----> 109ba9e8 - "AmigaAMP" Hunk 0004 Offset 00000000
----> 109b5428 - "h0:w-pr/Enforcer/Wipeout/Wipeout" Hunk 0000 Offset
00000520
----> 10030a6e - "tlsfmem" Hunk 0000 Offset 000003b6
----> 10030f0c - "tlsfmem" Hunk 0000 Offset 00000854
----> 109b52a0 - "h0:w-pr/Enforcer/Wipeout/Wipeout" Hunk 0000 Offset
00000398
10030eda :   2669 fffc            MOVEA.L (A1, -$0004) == $f7f7f7f3,A3
10030ede :   c749                 EXG.L A3,A1
10030ee0 :   2011                 MOVE.L (A1),D0
10030ee2 :   0240 fffc            AND.W #$fffc,D0
10030ee6 :   d680                 ADD.L D0,D3
10030ee8 :   91a8 001c            SUB.L D0,(A0, $001c) == $100407e4
10030eec :   6100 ff56            BSR.W #$ff56
10030ef0 :   6122                 BSR.B #$00000022
10030ef2 : * 2389 38fc            MOVE.L A1,(A1, D3.L*1, $fffffffc) ==
$65adadc0

10030ef6 :   2003                 MOVE.L D3,D0
10030ef8 :   0071 0001 3802       OR.W #$0001,(A1, D3.L*1, $02) == $65adadc6
10030efe :   5483                 ADD.L #$00000002,D3
10030f00 :   d1a8 001c            ADD.L D0,(A0, $001c) == $100407e4
10030f04 :   2283                 MOVE.L D3,(A1)
10030f06 :   6100 ff3c            BSR.W #$ff3c
10030f0a :   6150                 BSR.B #$00000050
10030f0c :   4cdf 0c1c            MVMEL.L #$0c1c,(A7)+
Name: "AmigaAMP"

Enforcer Hit! Bad program
Illegal LONG WRITE to: 65788e21                 PC: 10ecc7fe
Data: 00000004 deadf00d 10fee6aa 00000078 00000020 00000021 00000000
7fffe2a3
Addr: 657870c5 65788e25 65787065 657870c5 11d4b308 00000000 657870a5
11d4b2b4
Stck: 00000038 7fffffff 00000020 10ece782 10000868 10000868 00000000
65787065
Stck: 00000000 11d4b310 badedeed 00020202 00a6a620 01000000 000ab2fc
00028000
Stck: 00a689b8 20000868 ffff00e0 0008d0d8 00010000 00000008 00000000
00ecd9dc
Stck: ffff0868 0000e178 10000001 10f74fd2 10000868 1103c310 10eed320
10c5d6b0
Stck: 11d4b278 00000048 00000000 00000001 00000000 10eca75c 10eed320
10eca4dc
----> 10ecc7fe - "h0:w-pr/Enforcer/Wipeout/Wipeout" Hunk 0000 Offset
000027a6
----> 10ece782 - "h0:w-pr/Enforcer/Wipeout/Wipeout" Hunk 0000 Offset
0000472a
----> 10f74fd2 - "LIBS:muimaster.library" Hunk 0000 Offset 00005b0a
----> 10eca75c - "h0:w-pr/Enforcer/Wipeout/Wipeout" Hunk 0000 Offset
00000704
----> 10eca4dc - "h0:w-pr/Enforcer/Wipeout/Wipeout" Hunk 0000 Offset
00000484
10ecc7ec :   4e75                 RTS.L
10ecc7ee :   4e71                 NOP.L
10ecc7f0 :   594f                 SUBA.W #$00000004,A7
10ecc7f2 :   2f07                 MOVE.L D7,-(A7)
10ecc7f4 :   2e00                 MOVE.L D0,D7
10ecc7f6 :   2f41 0004            MOVE.L D1,(A7, $0004) == $11d4b2b8
10ecc7fa :   2248                 MOVEA.L A0,A1
10ecc7fc :   6006                 BT .B #$00000006
10ecc7fe : * 22ef 0004            MOVE.L (A7, $0004) == $11d4b2b8,(A1)+
10ecc802 :   5987                 SUB.L #$00000004,D7
10ecc804 :   7004                 MOVE.L #$00000004,D0
10ecc806 :   be80                 CMP.L D0,D7
10ecc808 :   62f4                 BHI.B #$fffffff4
10ecc80a :   7000                 MOVE.L #$00000000,D0
10ecc80c :   be80                 CMP.L D0,D7
10ecc80e :   630c                 BLS.B #$0000000c
10ecc810 :   41ef 0004            LEA.L (A7, $0004) == $11d4b2b8,A0
Name: "YAM"
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: hardlink on November 13, 2007, 05:58:12 PM
I am glad that development can continue - Thanks Chris! And Bernd_afa!

Now, what is the re-named  tlsfmem called and where can we find it for testing?
I thought all of Chris Hodge's web pages went 'Bye...'
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: Damion on November 13, 2007, 06:30:15 PM
Great news! TLSFmem rules. (I've also found a few programs that don't want to run with it, and I'll submit bug reports as soon as possible.)
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: unusedunused on November 13, 2007, 07:28:08 PM
I have told in the news, that i only begin on December if Chris do not fix anything.

i only want inform that furtherdevelop is possible and collect for Bug Reports.

so there is currently nothing to test.
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: little on November 13, 2007, 07:29:04 PM
Tlsfmem is dead, long live Memtlsf!!! :-D

Thanks Chris Hodges for allowing this nice program to continue :-)
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: sweetlilmre on November 13, 2007, 08:02:24 PM
Qudos to bernd_afa for taking the initiative on this.

Nice work mate!  :-D  :-D  :-D

-(e)
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: ChaosLord on November 13, 2007, 09:33:39 PM
TLSFmem Forever!

I haven't detected any bugs yet.

Anxiously awaiting the release of TLSFMungWall  :idea:
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: Cass on November 13, 2007, 11:51:51 PM
A great program from a great developer!

Thanks Chris, and good luck bernd_afa (we`ll give feedback on your work). :bow:
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: unusedunused on November 14, 2007, 09:46:37 AM
if the mungwall not work, doesnt matter, because mugwall is not usefull for developing today, because it tracks not poolmem.

a tool that do that and more is wipeout.it is opensource and with that tlsfmem that work.

i notice a fast speedup when use wipoeut(memtracker) mung memory.my 256 mb ram take without tlsfmem ca. 1 sec.

with tlsf mem it take not measurable time.

yam2.4p1 and MUI crash when use tlsf mem(see the hits)but when use zune and AFA OS it work.
after long time use i notice with AFA too random hangers with TLSF Mem, on startup but no crash, YAM does not continue to start.

but for speedmeasuring it is usefull  

My YAM have 6200 Mails in inbox.
when start without wipeout YAM take 3,5 sec.
here no diffrence with our without tlsf Mem.

But when use wipeout then YAM start without tlsfmem in 6,1 -6,3 sec (handstoppet)

with tlsf mem it start in 4,5-4,8 sec.
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: Piru on November 14, 2007, 10:16:23 AM
Quote
if the mungwall not work, doesnt matter, because mugwall is not usefull for developing today, because it tracks not poolmem.

Mungwall is faster and can be removed without rebooting the system. Those are useful attributes at times.

Quote
i notice a fast speedup when use wipoeut(memtracker) mung memory.my 256 mb ram take without tlsfmem ca. 1 sec.

with tlsf mem it take not measurable time.

That is because mh_First is NULL, and thus Wipeout does not munge memory at startup at all. Quite obvious if you think about it for a second.

No software can fill 256MB memory instantly.

While Wipeout starts faster due to missing memory munging, it runs exactly the same speed as before.
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: ChaosLord on November 14, 2007, 10:36:23 AM
Quote
f the mungwall not work, doesnt matter, because mugwall is not usefull for developing today, because it tracks not poolmem.

True!


Quote
a tool that do that and more is wipeout.it is opensource and with that tlsfmem that work.

I never knew about this!  It sounds awesome!  Why nobody tells me these things?!?! :-D
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: itix on November 14, 2007, 02:38:35 PM
Quote

if the mungwall not work, doesnt matter, because mugwall is not usefull for developing today, because it tracks not poolmem.


With TLSF you should not use memory pools anymore unless you want free tracking. AllocMem()/AllocVec() is more efficient than AllocPooled() because it wastes less memory and is also faster.
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: TheMagicM on November 14, 2007, 03:13:13 PM
that sounds taerg, I mean great.  lol
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: AmigaMance on November 15, 2007, 03:54:37 AM
@Bernd_afa
 If i have understood you correctly, you plan to convert highly optimized assembly code to blitzbasic? Hmm.. i'm not sure if this is a good thing but hey, it's better than nothing!
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: unusedunused on November 15, 2007, 04:40:22 PM
>No software can fill 256MB memory instantly.

i have a AMD64 3000+ with DUAL Channel DDR Ram and winuae.
sysspeed show me fast2fastm 828 Megabytes/sec

so in theory can be faster than wipeout and old mem system do ;-)

but you are right, i do a complete coldstart and verify and see wipeout with tlsfmem does not fill.

something i must add on todo list.it is important that the developers tools work 100% with memtlsf.

mungwall is faster sure, because it do not munge allocpooled and freepooled.

memfree on old AOS memallocater is very slow, so many programs use memory pools.

because poolmem was lots faster in praxis i change amiblitz to use mempools and here are find out that mungwall does not track mempool memory.

when i have tlsfmem in year 2000 then i save lots work -;)

but the algo is only found 2005

>If i have understood you correctly, you plan to >convert highly optimized assembly code to >blitzbasic?

i reassemble it to 68k asm code back, with in_go(aminet) and it stay asm.

but of course i use a modern graphical assembler ide where i can click on a jsr label and the editor jump to the label.this is important to navigate in unknwon programs that do many nestet jumps

so i develop memtlsf in amiblitz assembler.
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: ChaosLord on November 15, 2007, 08:53:15 PM
Quote
it is important that the developers tools work 100% with memtlsf.

Yes!

Quote
memfree on old AOS memallocater is very slow,

Very true!


Quote
but of course i use a modern graphical assembler ide where i can click on a jsr label and the editor jump to the label.this is important to navigate in unknwon programs that do many nestet jumps

Amiblitz Assembler sounds awesome!
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: unusedunused on November 16, 2007, 05:24:48 PM
>Amiblitz Assembler sounds awesome!

wy.C have too support of inline assembler code.

but in amiblitz it is much more easy to code in asm in basic code.

for example you can do
var = 40

move.l @var(a4),d0
add.l #10,d0
move.l d0,@var(a4)
print var
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: ChaosLord on November 16, 2007, 05:39:05 PM
That is awesome!  Back when Blitz Basic first came out (1988?) I begged them for that feature!  But they would not do it for me.  :-(   I told them I would pay them $200.00 for that feature so I could just use Blitz Basic as my Assembler.  Oh well... 20 years waiting is better than never. :-)
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: unusedunused on November 18, 2007, 12:13:32 PM
to mix very easy assembler and basic code was the first step done in amiblitz in when released 2001

this was necessary, because blitzbasic source was asm and in most part the fast asm speed is not necessary.

amiblitz use for new code basic and the old code stay in asm.

BTW: it is possible to test the amiblitz speed compare to c speed, when you download at www.hd-rec.de

if you do that with the existing CPU expensive effects as reverb, you can see that amiblitz sometimes is little faster sometimes little slower as gcc C.

to reach the speed amiblitz offer to load varibale to registers to avoid unescessary load of vars by bad compiler optimation.

for example

regload var1,var2,var3,var4
.....
calculation
.....
regsave var1,var2,var3,var4 ;//(if some values are changed)
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: nicholas on April 27, 2013, 04:56:22 PM
:bump:

What happened to this?  Did it ever get released?
Title: Re: Development of Tlsfmem as Memtlsf Allowed by Chris Hodge
Post by: ChaosLord on April 27, 2013, 10:14:08 PM
As u know TLSFmem and MuGuardianAngel don't get along with each other.

Some years back I was discussing this with THOR and to make a long story short: MuGuardianAngel needs to be rewritten to "work the way TLSFmem works".    Currently MuGuardianAngel relies on deeply intricate inner workings of the plain old ancient AmigaOS memory management system.

It really sux that I have to keep nuking TLSFmem and rebooting my machine every time I want to run MuGuardianAngel.

In a perfect world I could run both MuGuardianAngel and TLSFmem all the time on my dev machine and speed up my bug-catching and bug-destroying.

Thor will not rewrite MuGuardianAngel.  So basically we need Bernd or we're all dead.

Help me Berndi-wan Kenobi, ur my only hope.  My only hope.