Announcement

Collapse
No announcement yet.

Linux Works Towards True CPU Hotplug Support

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Linux Works Towards True CPU Hotplug Support

    Phoronix: Linux Works Towards True CPU Hotplug Support

    One of the first pull requests sent in following the the Linux 3.7 kernel release is for getting closer to "true CPU hotplug support" with the Linux 3.8 kernel...

    http://www.phoronix.com/vr.php?view=MTI0ODc

  • #2
    Originally posted by phoronix View Post
    Phoronix: Linux Works Towards True CPU Hotplug Support

    One of the first pull requests sent in following the the Linux 3.7 kernel release is for getting closer to "true CPU hotplug support" with the Linux 3.8 kernel...

    http://www.phoronix.com/vr.php?view=MTI0ODc
    Disclaimer: I havent been hands-on with server hardware, im looking at this with the perspective of a desktop system.

    Whats the usefulness of this? When I think of hotplugging I think of swapping out the piece of hardware while its in use which is why I get confused when I read about hot-swappable drives/ram/CPU's. If you just pull out a stick of RAM or a CPU while its in us you'll lose whatever data was on it and isnt it a risk to whoever is pulling out said piece of hardware from the electrical charge of the system? I get that hardware goes bad and it needs to be replaced but I guess where im tripping up on is the actual procedure to follow FOR replacing it while the systems in use.

    Comment


    • #3
      Yes, one basically replaces the CPU with bare hands, though you have to do it quickly, typically between 2 CPU cycles to not lose data. The motherboard detects that the CPU is being swapped and sends the OS a notification signal to work without the CPU, in which case the OS switches to using the audio or GPU processor (which makes it work slightly more slowly) until the new CPU is put in and the system continues working as usual.

      Comment


      • #4
        Originally posted by cl333r View Post
        Yes, one basically replaces the CPU with bare hands, though you have to do it quickly, typically between 2 CPU cycles to not lose data. The motherboard detects that the CPU is being swapped and sends the OS a notification signal to work without the CPU, in which case the OS switches to using the audio or GPU processor (which makes it work slightly more slowly) until the new CPU is put in and the system continues working as usual.
        In cases where the GPU is in the same silicon as the cpu, you could also temporarily switch to an ARM cpu inside an SSD controller. After all, many of them nowadays are multicores too!

        Comment


        • #5
          Originally posted by cl333r View Post
          Yes, one basically replaces the CPU with bare hands, though you have to do it quickly, typically between 2 CPU cycles to not lose data. The motherboard detects that the CPU is being swapped and sends the OS a notification signal to work without the CPU, in which case the OS switches to using the audio or GPU processor (which makes it work slightly more slowly) until the new CPU is put in and the system continues working as usual.
          2 cycles? a 4mhz processor has 4million cycles per second (http://www.codepedia.com/1/CPU+cycles) therefore a my 1.6ghz dualcore i5 is at 3.2billion (1.6billion per core) PER SECOND? Soo...its impossible to swap them out within 2 cycles?

          Comment


          • #6
            Originally posted by cl333r View Post
            Yes, one basically replaces the CPU with bare hands, though you have to do it quickly, typically between 2 CPU cycles to not lose data. The motherboard detects that the CPU is being swapped and sends the OS a notification signal to work without the CPU, in which case the OS switches to using the audio or GPU processor (which makes it work slightly more slowly) until the new CPU is put in and the system continues working as usual.


            Originally posted by Ericg View Post
            2 cycles? a 4mhz processor has 4million cycles per second (http://www.codepedia.com/1/CPU+cycles) therefore a my 1.6ghz dualcore i5 is at 3.2billion (1.6billion per core) PER SECOND? Soo...its impossible to swap them out within 2 cycles?
            I think cl333r might be having a bit of fun

            Normally the backplane in a hot swap system would have per-module power controllers and/or data buffers so that a module can be unplugged and replaced without affecting any of the other modules. Typical systems would have a number of modules of each type (CPU, disk, maybe even power supply) so that when one module was removed processing could continue on the remaining modules.

            Any work on the failed/removed CPU/memory module would be lost, so any affected process would need to be restarted or restored from a checkpoint. For a disk module, the RAID software/firmware would handle it.
            Last edited by bridgman; 12-11-2012, 12:16 PM.

            Comment


            • #7
              Originally posted by cl333r View Post
              Yes, one basically replaces the CPU with bare hands, though you have to do it quickly, typically between 2 CPU cycles to not lose data. The motherboard detects that the CPU is being swapped and sends the OS a notification signal to work without the CPU, in which case the OS switches to using the audio or GPU processor (which makes it work slightly more slowly) until the new CPU is put in and the system continues working as usual.
              Nice one
              You guys diddn't really believe this, right?
              Without googling for it first: I'm pretty sure you have to disable one CPU (via /proc/whatever), then pull it out, pull another one in and then enable it again via /proc/whatever. This only works on multi-CPU systems, of course..
              This way, the kernel knows in advance that the CPU will be pulled out and can save registers, etc. The same goes for RAM, of course.
              And for drives, of course you have to sync&unmount them first..

              Comment


              • #8
                Originally posted by cl333r View Post
                Yes, one basically replaces the CPU with bare hands, though you have to do it quickly, typically between 2 CPU cycles to not lose data. The motherboard detects that the CPU is being swapped and sends the OS a notification signal to work without the CPU, in which case the OS switches to using the audio or GPU processor (which makes it work slightly more slowly) until the new CPU is put in and the system continues working as usual.
                ROFL.Thanks, that made my day.

                But I guess this CPU hotpluggin might work in always on machines but maybe it might also help power management, to switch off cores and complete CPUs. (e.g. if you have a supervising small ARM to wake em up again)

                Comment


                • #9
                  Originally posted by Ericg View Post
                  Disclaimer: I havent been hands-on with server hardware, im looking at this with the perspective of a desktop system.

                  Whats the usefulness of this? When I think of hotplugging I think of swapping out the piece of hardware while its in use which is why I get confused when I read about hot-swappable drives/ram/CPU's. If you just pull out a stick of RAM or a CPU while its in us you'll lose whatever data was on it and isnt it a risk to whoever is pulling out said piece of hardware from the electrical charge of the system? I get that hardware goes bad and it needs to be replaced but I guess where im tripping up on is the actual procedure to follow FOR replacing it while the systems in use.
                  When hotplugging memory/CPU/other you'd first send a signal of some sorts to the OS that the piece of hardware you're about to remove should be deactivated. For memory, that would mean moving all of the data off of that stick of RAM. For a CPU, all threads would be migrated onto other CPUs. The same type of process would be used for other hardware you're about to swap. It's the same idea as unmounting/ejecting a flash drive before you pull it out of the USB port.

                  Comment


                  • #10
                    Originally posted by Ericg View Post
                    2 cycles? a 4mhz processor has 4million cycles per second (http://www.codepedia.com/1/CPU+cycles) therefore a my 1.6ghz dualcore i5 is at 3.2billion (1.6billion per core) PER SECOND? Soo...its impossible to swap them out within 2 cycles?
                    You have to be really fast. That's why system administrators dealing with these kinds of servers are really expensive.

                    Comment


                    • #11
                      Originally posted by pingufunkybeat View Post
                      You have to be really fast. That's why system administrators dealing with these kinds of servers are really expensive.
                      You know... looking back at cl33r's answer now, in the afternoon, rather than at 8am when I woke up... the sarcasm was a lot more obvious lol. Thanks for the serious answer though Bridgman

                      Comment


                      • #12
                        Originally posted by Veerappan View Post
                        When hotplugging memory/CPU/other you'd first send a signal of some sorts to the OS that the piece of hardware you're about to remove should be deactivated. For memory, that would mean moving all of the data off of that stick of RAM. For a CPU, all threads would be migrated onto other CPUs. The same type of process would be used for other hardware you're about to swap. It's the same idea as unmounting/ejecting a flash drive before you pull it out of the USB port.
                        This is the point generally. You don't really care about a desktop machine going down, but a server hosting a couple of hundred of VMs you want to be always available is a different matter. Of course, this is why you do redundancy, but it'd still be nice thing nonetheless.

                        Comment


                        • #13
                          Originally posted by pingufunkybeat View Post
                          You have to be really fast. That's why system administrators dealing with these kinds of servers are really expensive.
                          The smart ones know to do it during a cache miss. Gives them at least an extra 100 cycles of time.

                          Comment


                          • #14
                            Originally posted by ownagefool View Post
                            This is the point generally. You don't really care about a desktop machine going down, but a server hosting a couple of hundred of VMs you want to be always available is a different matter. Of course, this is why you do redundancy, but it'd still be nice thing nonetheless.
                            Always been true about virtualisation. If you're running 10 non mission-critical (production) VMs on a server, then that server becomes mission-critical.

                            Comment


                            • #15
                              Such hotplugging should theoretically work best on a multi processor (not multicore) desktop or server system, where there are more than one discrete processors on the motherboard. What about a situation where you have a bad core within a multicore system? Could you simply turn off the bad core and limp along till you can swap the CPU in that case?

                              Comment

                              Working...
                              X