Updated title 2024June7th/June8th overnite.
{central U.S. time CDT (-0500) am 02:08’13”} <lakitu> do I have this right: there must be a “poll”( sic; “polling”) for a “push”? {central U.S. time CDT (-0500) am 02:08’20”} <dude> wonder who owns what of nvidia {central U.S. time CDT (-0500) am 02:08’40”} <lakitu> to the higher programming masters here . . . {central U.S. time CDT (-0500) am 02:09’09”} <dude> lakitu idk what that is bro {central U.S. time CDT (-0500) am 02:10’12”} <lakitu> consider a `sleep` function that then “pushes”: it polls every however long until the duration total equals the `sleep` duration, then the “push” is executed. {central U.S. time CDT (-0500) am 02:10’22”} <FeeginnersMind> lakitu: Polling and pushing are opposites. Not sure what you’re saying. {central U.S. time CDT (-0500) am 02:10’37”} <dude> dang guess I should’ve spent my student loans on nvidia stocks {central U.S. time CDT (-0500) am 02:10’52”} <lakitu> (((* consider a `sleep` *containing *function that then “pushes”: it polls every however long until the duration total equals the `sleep` duration, then the “push” is executed.))) {central U.S. time CDT (-0500) am 02:11’04”} <lakitu> misprint. {central U.S. time CDT (-0500) am 02:11’26”} <FeeginnersMind> lakitu: The “there must be a poll” still doesn’t make sense. {central U.S. time CDT (-0500) am 02:11’51”} * RazielZ (~Raziel@user/raziel) has joined {central U.S. time CDT (-0500) am 02:11’51”} <dude> yeah drop the poll/push terminology {central U.S. time CDT (-0500) am 02:11’52”} * naomi-lgbt has quit (Remote host closed the connection) {central U.S. time CDT (-0500) am 02:11’53”} <FeeginnersMind> lakitu: You of course can poll and push in a loop, if you really want. Nobody will arrest you. {central U.S. time CDT (-0500) am 02:12’08”} <FeeginnersMind> At least probably not for that. {central U.S. time CDT (-0500) am 02:12’48”} <lakitu> FeeginnersMind: I ask for some patience then . . . a directory that “pushes” when receiving a file is polling . . . that is one example. {central U.S. time CDT (-0500) am 02:13’05”} <lakitu> FeeginnersMind: the `sleep` containing function is another example . . . {central U.S. time CDT (-0500) am 02:13’10”} <FeeginnersMind> Pushing and polling are opposites. {central U.S. time CDT (-0500) am 02:13’43”} <lakitu> I’m not sure you’re considering this how I am . . . {central U.S. time CDT (-0500) am 02:13’48”} <FeeginnersMind> Polling is checking for data before pulling it. {central U.S. time CDT (-0500) am 02:13’57”} <FeeginnersMind> Pulling and pushing go in opposite directions. {central U.S. time CDT (-0500) am 02:14’02”} <dude> shamelessshill did everyone at intel get old? like what happened lol {central U.S. time CDT (-0500) am 02:14’20”} <dude> itanium can’t have been that bad {central U.S. time CDT (-0500) am 02:14’42”} * interop_madness (~interop_m@user/interop-madness/x-0950004) has joined {central U.S. time CDT (-0500) am 02:15’13”} * Raziel has quit (Ping timeout: 256 seconds) {central U.S. time CDT (-0500) am 02:15’24”} <lakitu> how `sleep` functions & other related functions work on a central processing unit (CPU) scale, I think we’re still talking polling for most any usual “push” I can think . . . {central U.S. time CDT (-0500) am 02:15’25”} <dude> idk why chips are even being made in Taiwan in the first place {central U.S. time CDT (-0500) am 02:15’59”} <FeeginnersMind> lakitu: You keep saying the same thing, we keep saying no… {central U.S. time CDT (-0500) am 02:16’01”} * anovick (~anovick@2001:4df4:5700:2a00:7004:63c9:331c:c944) has joined {central U.S. time CDT (-0500) am 02:16’32”} <FeeginnersMind> lakitu: There might be some underlying truth to what you are trying to say, but what you are actually saying does not come across as right. {central U.S. time CDT (-0500) am 02:16’43”} * kkawg ([email protected]) has joined {central U.S. time CDT (-0500) am 02:16’58”} <lakitu> FeeginnersMind: I gave two examples. {central U.S. time CDT (-0500) am 02:17’34”} <Affliction> lakitu: depends on the chip, and the software… Let’s simplify it down: simple code running bare metal on a microcontroller {central U.S. time CDT (-0500) am 02:17’58”} <Affliction> Generally there’d be a timer peripheral that can be asked to deliver an interrupt after n “ticks” of whatever clock it uses {central U.S. time CDT (-0500) am 02:18’05”} <lakitu> consider a loop that checks for something to do, then sleeps. this is like polling in a “push” {central U.S. time CDT (-0500) am 02:18’11”} <Affliction> The CPU can be placed into a sleep state until that timer fires an interrupt. {central U.S. time CDT (-0500) am 02:18’17”} <Affliction> That would be a “push” {central U.S. time CDT (-0500) am 02:18’22”} <FeeginnersMind> lakitu: What does push have to do with it? {central U.S. time CDT (-0500) am 02:18’31”} <Alphie> lakitu: try describing what you’re talking about without using the words ‘poll’ or ‘push’ or the letter ‘e’ :P {central U.S. time CDT (-0500) am 02:18’33”} <Affliction> Polling would be where the CPU continuously samples the timer, waiting for it to reach a given value. {central U.S. time CDT (-0500) am 02:18’35”} * agent314 has quit (Ping timeout: 264 seconds) {central U.S. time CDT (-0500) am 02:18’45”} <dude> time based interrupts? is that watchdog? {central U.S. time CDT (-0500) am 02:18’53”} * agent314 ([email protected]) has joined {central U.S. time CDT (-0500) am 02:19’16”} <Affliction> in a way, though watchdog timers generally reset the chip (or just cpu) completely {central U.S. time CDT (-0500) am 02:19’24”} * Jackneill ([email protected]) has joined {central U.S. time CDT (-0500) am 02:19’40”} FeeginnersMind indyZ inhahe` Inline inspork interop_madness {central U.S. time CDT (-0500) am 02:19’42”} <Affliction> If there’s other work to do, the CPU can run that other task until it receives the timer interrupt too {central U.S. time CDT (-0500) am 02:19’45”} <dude> interesting {central U.S. time CDT (-0500) am 02:19’58”} <lakitu> right (`Affliction`) {central U.S. time CDT (-0500) am 02:20’06”} * vdamewood (~vdamewood@fedora/vdamewood) has joined {central U.S. time CDT (-0500) am 02:20’26”} <Affliction> on a multitasking OS, things will be a bit more complex, generally there would be a timer that fires periodically that triggers task switches {central U.S. time CDT (-0500) am 02:20’39”} <Affliction> and sleep() just marks a process as not-runnable {central U.S. time CDT (-0500) am 02:20’53”} <vdamewood> Hi, people etc. {central U.S. time CDT (-0500) am 02:20’57”} <dude> sup {central U.S. time CDT (-0500) am 02:21’01”} <Affliction> The OS might take note of the desired time of sleeping tasks and use another hardware timer to wake them up at a precise time {central U.S. time CDT (-0500) am 02:21’21”} <Affliction> Or, it might only wake tasks up at the resolution of the main task-switching timer {central U.S. time CDT (-0500) am 02:21’21”} <lakitu> I might have understood pushes at a deeper level, is what I was wondering. polling is pretty important. `Affliction` looks like he gets it . . . {central U.S. time CDT (-0500) am 02:21’22”} * Stefan27 ([email protected]) has joined {central U.S. time CDT (-0500) am 02:21’41”} <lakitu> (I see.) {central U.S. time CDT (-0500) am 02:21’43”} * Gnana (22450@user/Gnana) has joined {central U.S. time CDT (-0500) am 02:21’52”} <Affliction> Now, you might use polling in a precise version of sleep() {central U.S. time CDT (-0500) am 02:22’04”} <dude> I don’t normally see the term push wrt to process cycle tbh {central U.S. time CDT (-0500) am 02:22’48”} <Affliction> If your multitaskign OS switches task every millisecond, and you want to wait exactly 1650 microseconds, you might sleep() for 1000 microseconds, then poll the timer until the given time is reached. {central U.S. time CDT (-0500) am 02:23’13”} <kkawg> don’t you time the MHz {central U.S. time CDT (-0500) am 02:23’17”} <lakitu> oh nice!! {central U.S. time CDT (-0500) am 02:23’31”} * dislabled_ ([email protected]) has joined {central U.S. time CDT (-0500) am 02:23’38”} <lakitu> ((re `Affliction`)) {central U.S. time CDT (-0500) am 02:23’50”} <Affliction> kkawg: That might be one of the timers, sure, if your CPU has a counter. {central U.S. time CDT (-0500) am 02:24’26”} * dislabled has quit (Ping timeout: 252 seconds) {central U.S. time CDT (-0500) am 02:24’34”} <Affliction> lakitu: So yeah, even for sleep(), interrupts and polling can both be used. {central U.S. time CDT (-0500) am 02:25’30”} <lakitu> Affliction: & that’s crazy {central U.S. time CDT (-0500) am 02:25’47”} <lakitu> they pit them contra each other – {central U.S. time CDT (-0500) am 02:25’50”} <Affliction> Most other hardware, eg, think network cards with incoming packets, will generally deliver interrupts instead of being polled {central U.S. time CDT (-0500) am 02:26’02”} <lakitu> for defending the Internet of Things (IoT) . . . {central U.S. time CDT (-0500) am 02:27’10”} * AquaL1te (~AquaL1te@user/aqual1te) has joined {central U.S. time CDT (-0500) am 02:27’34”} * shamelessshill has quit (Ping timeout: 268 seconds) {central U.S. time CDT (-0500) am 02:29’01”} <Affliction> And of course, modern high perf desktop CPUs benefit from staying in sleep, my 16 core 3950X can idle at what it reports as 7 watts, but even a tiny bit of cpu load that keeps both core chips alive, will bring it up to ~25. {central U.S. time CDT (-0500) am 02:29’19”} <Affliction> I’d expect having all 16 cores spin in a tight loop, would waste a ton of po[w]er {central U.S. time CDT (-0500) am 02:30’01”} <lakitu> you can manually poll (at human time scales) – check something one time a week for example – versus being merely able to (what they describe as) “push” an Internet of Things (IoT) thing. {central U.S. time CDT (-0500) am 02:30’39”} <Affliction> sure, things can interrupt you too⸻ ValentynJoe
USAMinnesota
2024June6th