klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
sonny has quit [Quit: Going offline, see ya! (www.adiirc.com)]
Burgundy has quit [Ping timeout: 256 seconds]
mlombard has quit [Remote host closed the connection]
freakazoid333 has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.4]
<kazinsal> first part of my vax rig has arrived, and it's the SCSI2SD
<kazinsal> console cable is expected next, then the AUI transceiver and the VAX itself
<kazinsal> the AUI transceiver is currently in global shipping program purgatory and the VAX is on its way there
<kazinsal> the console cable is coming from some guy's workshop in Berlin and the only reason the SCSI2SD beat it here was because that came from within canada
thinkpol has quit [Remote host closed the connection]
thinkpol has joined #osdev
<mrvn> kazinsal: I looked into scsi2sd adaptors but all I could find was super slow ones. 1.0-2.5MB/s
<kazinsal> yeah, they're mostly meant for really old machines that predate Fast SCSI
<mrvn> iirc sync scsi was 5MB/s, async scsi 10MB/s, fast scsi 20MB/s and wide scsi 40MB/s, lvd 80MB/s.
<mrvn> something like that. My 20 year old 4GB scsi disks do 9,8 MB/s.
<klange> https://www.youtube.com/watch?v=NcMya7CbFt0 i was going to get a video of doom with audio but then I got distracted by this rpi stuff
<bslsk05> ​'ToaruOS AArch64 on HVF, Doom with audio' by K Lange (00:02:04)
<mrvn> don't you love math videos that start with "1 is prime, 2 is prime, ..."
<moon-child> ook
freakazoid333 has quit [Read error: Connection reset by peer]
<klange> 1 can be an honorary prime
<mrvn> if 1 is (honorary) prime than no other number is prime, because they all have a prime factor of 1.
Starfoxxes has quit [Ping timeout: 252 seconds]
<klange> it satisfies the lay definition of "only being divisible by one and itself"
Starfoxxes has joined #osdev
<mrvn> klange: sure. but try using that to calulate prime factors of a number. 21 % 1 == 0, 1 is a factor, remainder 21. 21 % 1 == 0, 1 is a factor, remainder 21, 21 % 1 is a factor, remainder 21, ....
<klange> that's getting too deep into the actual definition of primality
<mrvn> way past it, that goes towards using primes.
<moon-child> fundamental theorem of arithmetic!
<klange> 2: "You are on the council, but we do not grant you the rank of prime number."
<mrvn> 2 is the only even number that is prime, that makes it odd. :)
<klange> 1: "What? How can you do this? This is outrageous! It's unfair! How can I be divisible only be me and myself and not be a prime?!"
<mrvn> Me, myself and I decided you are not prime.
<klange> Anyway, you hear about 7 eating 9, but the real store is about how 1 murdered all those fractions and became Darth Vader.
<klange> story*
<klange> And Palpatine is probably 0 in this.
<mrvn> hehe. this gets better. Lets write code to say if something is prime. for (i = 2; i < value / 2; ++i)... don't have to test anything past value / 2, we want this to be faster
<mrvn> klange: why is 8 afraid of 7? because 7 ate 9.
<moon-child> sqrt(value)
<mrvn> if he wanted this to be fast he should first test for 2 and even and then only do odd number too i * i > value
<klange> "Did you ever hear the tragedy of Darth i, the Imaginary? I thought not, it's not a story the Natural Numbers would tell you."
<moon-child> mrvn: I thought it's because 7 is a registered six offender
<bslsk05> ​www.amazon.de: Get Real Be Rational: Be Rational Get Real Funny Math Pun Blank Sketchbook to Draw and Paint (110 Empty Pages, 8.5" x 11") : Sketchbooks, The Perfect Presents Mathematics: Amazon.de: Bücher
<klange> "Power! Unlimited power! As in n^∞!"
<mrvn> Hmm, he seems to be a the sort of programers to only allow one return statement per function: primey = true; for (...) { if (value % i == 0) { primey = false; break; }} return primey;
<klange> that's definitely a path to the dark side
<Mutabah> Just wait until you see try-catch blocks with inline throws to work around that perceived rule
_eryjus has joined #osdev
eryjus has quit [Ping timeout: 240 seconds]
_eryjus has quit [Remote host closed the connection]
eryjus has joined #osdev
[itchyjunk] has quit [Ping timeout: 260 seconds]
eryjus has quit [Remote host closed the connection]
eryjus has joined #osdev
[itchyjunk] has joined #osdev
dude12312414 has joined #osdev
sonny has joined #osdev
ElectronApps has joined #osdev
sonny has quit [Ping timeout: 256 seconds]
sonny has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
[itchyjunk] has joined #osdev
gog has quit [Ping timeout: 240 seconds]
masoudd has quit [Ping timeout: 256 seconds]
freakazoid333 has joined #osdev
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #osdev
ElectronApps has quit [Ping timeout: 256 seconds]
ElectronApps has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
[itchyjunk] has quit [Read error: Connection reset by peer]
eroux has joined #osdev
<geist> i am back
<kingoffrance> no yawn...dont buy it
<klange> wired up the mini uart on the rpi so I can actually interact with it https://cdn.discordapp.com/attachments/711112727426367571/945928113806770216/Screenshot_from_2022-02-23_15-20-26.png
HeTo has quit [Ping timeout: 252 seconds]
GreaseMonkey has quit [Read error: Connection reset by peer]
the_lanetly_052 has joined #osdev
the_lanetly_052 has quit [Max SendQ exceeded]
the_lanetly_052 has joined #osdev
<klange> I still have a rare problem with starting up new processes... I should be doing all the necessary instruction cache maintenance for exec and dlopen, maybe it's fork() - it's generally in /bin/sh I'm seeing problems...
mlombard has joined #osdev
sonny has quit [Quit: Going offline, see ya! (www.adiirc.com)]
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
air has quit [Ping timeout: 240 seconds]
GeDaMo has joined #osdev
air has joined #osdev
AmyMalik is now known as MelMalik
paulusASol has quit [Quit: Reconnecting]
paulusASol has joined #osdev
junon has quit [Quit: You have been kicked for being idle]
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
ElectronApps has quit [Remote host closed the connection]
pretty_dumm_guy has joined #osdev
dormito has joined #osdev
Burgundy has joined #osdev
gog has joined #osdev
gog has quit [Client Quit]
gog has joined #osdev
<j`ey> does qemu use threads for -smp? I assume it is actually faster to give a VM more cores..
dormito10 has joined #osdev
<klange> Yes, on supported platforms.
dormito has quit [Ping timeout: 256 seconds]
<j`ey> cool, I was pretty sure it did, just wanted to sanity check
<klange> If you're using KVM or another hardware virtualization interface, almost definitely; TCG is going to depend on host and target, but for sure x86 on x86 will do threads by default.
<j`ey> yeah Im on x86_64 (for once!) using kvm
zaquest has quit [Quit: Leaving]
eroux has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ElectronApps has joined #osdev
<vin> Would having max queue depth produce lowest latency possible for both random and sequntial accesses on SSD? Or is having high QD only helpful in random?
eroux has joined #osdev
zaquest has joined #osdev
gorgonical has quit [Ping timeout: 256 seconds]
gorgonical has joined #osdev
[itchyjunk] has joined #osdev
Jari-- has joined #osdev
gildasio has joined #osdev
ahalaney has quit [Quit: Leaving]
FatalNIX has joined #osdev
<FatalNIX> who was the one who used SQLite as their filesystem?
<FatalNIX> I was kind of curious out of random thought today, was the extra work to get sqlite to function actually worth it for their early persistence development XD
masoudd has joined #osdev
dormito has joined #osdev
dormito10 has quit [Ping timeout: 256 seconds]
dormito10 has joined #osdev
dormito has quit [Ping timeout: 256 seconds]
heat has joined #osdev
<heat> hai
<g1n> hi heat
<g1n> FatalNIX: i think first you need to implement other fs lol
<FatalNIX> g1n: From what I remember hearing, they were using SQLite as the filesystem itself because SQLite stores its data in 512 byte blocks which are conveniently similar to many disk sector sizes...
<FatalNIX> The store is cursed already
<g1n> oh
<FatalNIX> story*
dude12312414 has joined #osdev
<moon-child> I think block size is configurable anyway
<moon-child> in case you have 4k sectors or something
<g1n> hey!!!! i have just outputed my initrd!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<g1n> YAY
<g1n> lol
<g1n> i am happy, cuz i stopped on initrd on last try
<g1n> so if not count that i haven't made memory manager yet, i am already went far from my last try!!
<FireFly> \o/
<FatalNIX> I had this idea at one point to make my memory manager always hand out fixed sized blocks and force processes to spend their own allocated time slots on breaking them down and fragmenting them with malloc. The only real problem I saw was that if you wanted to allocate a good ammount of memory then it would theoretically be O(n) where n is the time it took to allocate one memory allocation unit.
<FatalNIX> but allocating small pieces of memory was always about O(1)
srjek has joined #osdev
<Mutabah> That's a pretty common idea really
<FatalNIX> I kind of wonder though now what it would be like to use a tree data structure instead.
<FatalNIX> or even a HAMT
<mrvn> FatalNIX: that is how you should do it.
<FatalNIX> what, the HAMT / other tree data structure or what I mentioned before
<mrvn> FatalNIX: Many kernels use demand paging. Meaning you only hand out blocks of the virtual address space. Then when a page fault occurs you find a physical page and place it where the page fault occured.
<FatalNIX> A HAMT would be kind of cool because I could use it to persist and recover process memory after "forgetting" where it is.
<mrvn> FatalNIX: So make your virtual address space use some tree and the physical use pages and you are fine.
<mrvn> FatalNIX: look into prefix trees, specifically radix trees
<FatalNIX> I have looked at radix trees before, not for this though.
<mrvn> FatalNIX: how would a HAMT work? You enter every single 4k block of allocated memory?
<FatalNIX> It'
<FatalNIX> It's funny because I went to school for Electrical and Computer Engineering, I only took a few CS classes for fun, so there are plenty of structures I have only heard of sometimes or go, "woah I wish I knew that existed"
<FatalNIX> :)
<FatalNIX> mrvn: I would think so. I see it more useful perhaps in a simple filesystem table than memory.
<mrvn> Note: The page tabels are a radix tree. You can use those to track a processes memory if all else fails.
<FatalNIX> though if I knew exactly how memory persisted to whatever medium I had and expected it to never change, and never cared about any other filesystems, then in theory I could be irresponsible and make memory and disk formatted exactly the same...
<mrvn> FatalNIX: memory is cache for the disk. There are kernels that use that.
<mrvn> FatalNIX: Other filesystems would just allocate a big continous chunk of "memory" spanning the relevant disk and then do their FS on memory.
<mrvn> #like a placement new()
<FatalNIX> I think I would try something dumb like creating a circular buffer of filesystem write pointers or something to sync from. I like to use as little memory as possible sometimes.
<moon-child> memory is cheap
<FatalNIX> Instead of having one big continuous space. Though, it is more efficient for DMA to write 25MB of data then 25 1MB transfers
<moon-child> and if you don't suck you are going to spend dramatically more memory on file buffers than file metadata anyway
<moon-child> so
eroux has quit [Ping timeout: 272 seconds]
dormito has joined #osdev
<FatalNIX> I spend too much time on architectures like the MSP430
<FatalNIX> where I have half a kilobyte of memory
<FatalNIX> XD
<mrvn> FatalNIX: having persistant memory on disks is very hard. It's so cool when you can just hit reset and the system just boots back up into whatever was running shortly before that. But oh so hard to implement.
<moon-child> yes
<FatalNIX> mrvn: You know one of my persistent memory ideas for a single board computer project was to just record memory to VHS tape using a stereo VCR?
<mrvn> FatalNIX: DMA normaly use descriptor tables. One entry of 25MB or 25 entry of 1MB make no difference. The time to step to the next descriptor is negible.
<FatalNIX> with an FSK PLL circuit
<mrvn> FatalNIX: I always wanted to build my own tape drive from an old VCR.
<FatalNIX> My idea was to store parity information in the video channel or something
<FatalNIX> if I didn't use FSK I could store the data as a differential pair of signals in the stereo left and right channels
<mrvn> FatalNIX: for sure. VHS video is horribly error prone. YOu need lots and lots of redundancy.
dormito10 has quit [Ping timeout: 256 seconds]
the_lanetly_052_ has joined #osdev
<FatalNIX> I could have also used a regular audio tape but the more tracks I had the more I could do with it
<mrvn> FatalNIX: I was thinking of actually using the video, not the audio.
<FatalNIX> The video would be a lot higher bitrate
<mrvn> you can always repeat bits for long stretches to cut that down. Reduces errors too.
<FatalNIX> My assumption is that VHS tapes are probably only 8Khz audio like a T! DS0
<FatalNIX> T1*
<FatalNIX> Yes. Well usually, you'd want to have a minimum of two samples per symbol
the_lanetly_052 has quit [Ping timeout: 245 seconds]
<mrvn> E.g. one bit per scanline. Use the hsync to recognize the bit borders.
<FatalNIX> and you could do some cool experiments with say QAM or PSK or something
<FatalNIX> Does the NTSC color burst exist in the tape data?
<FatalNIX> I would think so
<FatalNIX> not that you need it
<mrvn> I don't even know if the tape stores RGB or YUV. Stores it sequentially or in parallel tracks. My guess would be YUV in 3 analog tracks.
<FatalNIX> My assumption is that it would store PAL or NTSC then the tv just interprets it as an RF or composite signal
<mrvn> Or does it just store the composite video signal as is?
<gog> it stores a line of whatever broadcast format it's recorded helically
<gog> iirc
<FatalNIX> If it is stored as is then that means that you don't have to worry about the VCR doing any weird shit to your signal
<FatalNIX> meaning you won't get color bursts every single frame or anything and data being interlaced for you by the unit
<gog> depending on recording mode, idk how it compresses scanlines for SP/LP/SLP
<mrvn> it still has to count frames. Or does it just assume it's 29.95Hz?
<mrvn> gog: doesn't LP just turn the tape slower?
<FatalNIX> I would assume it is literally just syncronized by the pixel clock
<gog> i think so yeah
ElectronApps has quit [Remote host closed the connection]
<mrvn> FatalNIX: if you just record composite video you would record the sync signals too. The VCR would have to nothing at all but play back what was recorded.
<FatalNIX> See this is why I am a huge fan of VGA
<FatalNIX> VGA may be old but it is super simple and easy to make your own VGA driver.
<mrvn> FatalNIX: totaly analog, no pixel clock at all.
<FatalNIX> and the ammount ofr colors you can have is infinite until the point where the noise level is higher than the difference between two colors.
<mrvn> FatalNIX: VGA is hard. It has all those requirements on pixel clock, horizontal frequenzy, vertical frequenzy. black&white composite is so much simpler. ALl it takes is 2 resistors to make a composite video card.
<FatalNIX> when using a TV that is analog all the way to the electron guns that is
<FatalNIX> You can use a resistor ladder to create VGA output and the 4 pin crystal oscilators for different VGA resolutions are literally available, or used to be on mouser and such anyways
<mrvn> see, more than 2 resistors.
<FatalNIX> Lol
<FatalNIX> well it depends on how much color you want
<FatalNIX> I find that if you were to make your own VGA driver, 12 bit color is very easy to do
<FatalNIX> and 12 bit color is also visually appealing
<mrvn> FatalNIX: my ATtiny only has so many digital pins. 12 pins for the resitor ladder might be impossible.
<mrvn> FatalNIX: i must have remembered wrong, it's 3 resistors: http://www.suppertime.co.uk/blogmywiki/wp-content/uploads/2017/01/TVOut-Uno-1024x639.png
<mrvn> FatalNIX: It really is just B&W. If you use a resistor ladder with more pins you can do greyscale. If you want color then it gets much more complex with composite video.
<FatalNIX> I'd have to find my notes which have probably disappeared in many boxes but, I think the way my system worked is that that part of the driver was mostly in parallel out shift registers or something... IIRC, I always shifted in all of the color data before the next pixel was ready to beam.
<FatalNIX> I also believe I used an OP amp for each RGB channel
<FatalNIX> instead of a resistor ladder
<mrvn> FatalNIX: using latches and resistor ladders or DACs to genersate the color signal for each pixel is advicable
<FatalNIX> (using the cheapo op amp DAC trick)
<FatalNIX> You still needed resistors on the input of the op amps
<FatalNIX> I like to scribble a lot and then never see my notepad pages ever again
<FatalNIX> XD
<FatalNIX> I don't know if anyone does that like I do but it's annoying because 6 months later I'll be like "oh yeah I had this all figured out" and maybe tested part of it on my desk but never see it ever again
<FatalNIX> Then sometimes I will find a notebook with 5 million different things written more than once on multiple pages scattered across the notebook in some random box full of VOIP phones or some crap.
<FatalNIX> I stopped though on that project when I realized how difficult getting sprites to work the way I wanted were going to be.
sonny has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
joe9 has quit [Ping timeout: 272 seconds]
joe9 has joined #osdev
<mrvn> some people think and learn mechanial, others visual, yet other audible.
<mrvn> It's also where rubber-ducking comes from.
heat has quit [Ping timeout: 250 seconds]
doorzan has joined #osdev
HeTo has joined #osdev
<FatalNIX> 3~I am an auditory learner myself.
wootehfoot has joined #osdev
<gog> i don't learn
<mrvn> You more you learn, the more you know, the more you know the more you forget, the more you forget the dumber you are. Learning makes you dumb.
<moon-child> lol
<gog> QED on that
<bslsk05> ​'Yes - The More We Live (Let Go) (1991)' by Arnaud V. (00:04:55)
<kingoffrance> https://en.wikipedia.org/wiki/ArVid you get 2GB per tape
<bslsk05> ​en.wikipedia.org: ArVid - Wikipedia
<mrvn> kingoffrance: fails the NIH test
<kingoffrance> Similarly, this means that an E240 4-hour tape, using the higher data rate, would be capable of storing between 4.35 and 4.46 GB (230 bytes), approximately equivalent to a standard single-layer recordable DVD.
<kingoffrance> well, depends if "Russia" is "Here" or not :D
xenos1984 has quit [Read error: Connection reset by peer]
<mrvn> "A VHS recorder unit should be connected to an ArVid ISA board by a composite video cable." That card has no composite video output/input
xenos1984 has joined #osdev
<mrvn> kingoffrance: for the record, "here" ends at the door. :)
pretty_dumm_guy has quit [Ping timeout: 256 seconds]
mahmutov has joined #osdev
pretty_dumm_guy has joined #osdev
the_lanetly_052_ has quit [Ping timeout: 240 seconds]
vdamewood has joined #osdev
<vin> What does (total amount of data)/bandwidth yeild? The minimum time it took to process the amount of data?
<moon-child> yeah
<kingoffrance> NIH invents you!
X-Scale` has joined #osdev
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
not_not has joined #osdev
<not_not> Ey
anon16_ has joined #osdev
<not_not> What language should i use? C or C++?
<mjg> yes
<sonny> lmao
<moon-child> no
<sonny> just pick what you like
<not_not> C
<not_not> No i meant malbolge os
<GeDaMo> Cobol has pointers now, you could try that :P
<not_not> Oh xd
<not_not> Hmm ill invent another language
<not_not> Nah C i think c makes more sense for a kernel
<not_not> Still stuck on my bootloader tho
Vercas5 has joined #osdev
anon16_ has quit [Quit: Quit]
<not_not> So im in an insane asylum atm that clearly mitms my ssh
Vercas has quit [Ping timeout: 240 seconds]
Vercas5 is now known as Vercas
the_lanetly_052_ has joined #osdev
<not_not> Could log in but id have to make a scripts that erases all code comments first
<sonny> what are your thoughts for the bootloader?
<kingoffrance> you should ship of theseus <insert language here> until it becomes not_not
<not_not> Is is
the_lanetly_052_ has quit [Ping timeout: 256 seconds]
<gog> well my mm rewrite has uncovered a bug in my rbtree code :>
<gog> the address range for the page stack is less than the root node but it tries to insert to the right :thinking:
<mrvn> gog: why so complicated? At first a program has code, rodata, data, bss, stack, heap. Just record the size of those and done.
<gog> because
<mrvn> Tip: write unit tests and test the tbtree in user space, not in the kernel.
<gog> thank
<mrvn> Wasn't an rbtree rather costly performance wise?
cvemys has joined #osdev
<gog> i don't know
<mrvn> gog: what allocation strategy are you going to use? first fit? best fit? next fit?
<gog> best fit
<mrvn> So you have one rbtree with each free block sorted by address and a heap with the chunks sorted by size?
<mrvn> wait, no, heap won't work. has to be a rbtree too
<gog> no rn this is for address space lookup
<mrvn> You could do doubly linked list + rbtree
<gog> i could
<mrvn> the linked list to merge blocks on free and the tree to bets fit
<mrvn> Are you doing 32bit or 64bit?
not_not has quit [Ping timeout: 268 seconds]
<gog> 64
<gog> so yeah best-fit seems a little overkill
<gog> because it's not like i'm gonna run out of address space
<mrvn> So you have 256 Exabyte of address space and programms will allocate a a few GB and you are worried about running out of address space and want to pack everything tightly?
<mrvn> hehe
<gog> ¯\_(ツ)_/¯
<gog> this is mostly for objects that need to live in the global kernel space
<gog> ofc i could have the global space be whatever
<mrvn> gog: Indee. I use next fit. I keep a pointer to after the last allocation and then each allocation just has to split that block till it hits the end of 256 Exabytes and hast to loop and start again from the begining, which is never ever in all my test cases.
<mrvn> I actually had to add a test/debug variable to limit address space so I can test the overflow. Limit the address space to a 16GB so it quickly loops.
masoudd has quit [Ping timeout: 252 seconds]
<mrvn> Doing it like that has an effect on the rbtree. You always insert at the right so it gets lop sided and you have to rebalance all the time. Makes you rething that tree idea.
<mrvn> something to think about.
<mrvn> gog: what objects do you need at the moment?
<gog> not many currently but i plan on having address spaces be the overlying object for everything
<gog> anyhow i found the error
<gog> i wasn't making the tree root the parent in the case of no predecessor node
X-Scale` has joined #osdev
<mrvn> Here is another tip: always leave one page unused between allocations. That way any buffer over/underflow will pagefault.
<gog> yes
<gog> guard pages
<gog> i know what those re
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` is now known as X-Scale
dude12312414 has joined #osdev
srjek has quit [Ping timeout: 240 seconds]
<sham1> ><>
<sham1> Hello
mahmutov has quit [Ping timeout: 256 seconds]
sprock has quit [Quit: brb]
sprock has joined #osdev
gwizon has joined #osdev
<vin> moon-child: thanks. Then do you know why IO cost is usually associated with number of operationss times latency and not number of bytes processed by bandwidth?
<mrvn> vin: because bandwidth isn't a constant there
<mrvn> operationss times latency seems wrong too since IO ops are interleaved
<vin> mrvn: good point. So insn't latency also not a constant, tail latencies are a common thing. That said, if the unit of cost is time (ns) then why does it matter if it is from latency or bandwidth
mahmutov has joined #osdev
<moon-child> vin: latency of a single operation is _likely_ to be fairly uniform. But you have to consider the entire system. Nonuniformity wrt which operations you're asked to perform, and how full/empty your queues are at a given time
<moon-child> (e.g. maybe X and Y are nominally the same cost, but people are asking for a lot of Xs, so your X queue fills up, while Ys don't take as long. Multiply by n levels of abstraction--cache, branch prediction, resource contention, garbage collection, scheduling, network jitter, queue nonuniformity across a complex distributed system, etc.--and you get a system which appears to behave chaotically)
<vin> hmm makes sense.
<vin> If I wear to keep the bandwidth constant, then yes can use it. But if number of ops times latency indicate a lower bound of time taken would amount of bytes processed by bandwidth indicate a upper bound?
<vin> I think it should be lower as well
sonny has quit [Ping timeout: 240 seconds]
sonny has joined #osdev
<vin> lol or it might mean nothing at all
mrkajetanp has quit [Read error: Connection reset by peer]
mrkajetanp has joined #osdev
<mrvn> vin: because your bandwidth is 600MBit/s but a seek still takes 8ms.
<mrvn> with maybe 64 bytes for a seek.
<clever> ive even ran into ops/sec limits on an SD card
<mrvn> you never ever saturate your bandwidth with IO in practice on disks.
<clever> doing 512 byte sector reads, i hit a speed cap where it was hitting a nice round number like 100 reads/sec (forget the exact number)
<clever> increasing the read size raised the bytes/sec
<mrvn> in conclusion: a lot of factors go into IO costs.
sonny has quit [Quit: Going offline, see ya! (www.adiirc.com)]
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
sprock has quit [Quit: brb]
sprock has joined #osdev
dormito has quit [Quit: WeeChat 3.3]
GeDaMo has quit [Remote host closed the connection]
wootehfoot has quit [Quit: Leaving]
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
[itchyjunk] has quit [Remote host closed the connection]
xenos1984 has joined #osdev
srjek has joined #osdev
GreaseMonkey has joined #osdev
mahmutov has quit [Ping timeout: 250 seconds]
theruran has quit [Quit: Connection closed for inactivity]
doorzan has quit [Quit: Leaving]
<Bitweasil> Yeah, the SD cards typically IOPS out on small reads, and bandwidth out on big stuff.
<Bitweasil> I've seen that behavior too.
<Bitweasil> I mean, most devices will, at some level.
<Bitweasil> USB SSDs have some fixed overhead, they're not able to saturate the bus at small block reads.
<mrvn> Like modern ram they probably have auto increment latches for the address decoder so they can read sequential data without having to reprogramm the address every time. But smal IO ops will have to reset chip select, row and column.
X-Scale has quit [Quit: HydraIRC -> http://www.hydrairc.com <- It'll be on slashdot one day...]
dormito has joined #osdev
diamondbond has joined #osdev