Add potatoes to a large pot and cover with water. Bring to a boil and cook until the potatoes are tender 12-15 minutes. Drain and set aside.
Meanwhile heat a large skillet over medium heat and add in bacon. Cook until golden brown and crisp. Remove from the pan to a paper towel lined plate. (Do not drain bacon grease!) Chop up bacon into bite size pieces.
Add cabbage and onion to the same pan the bacon was cooked in. Increase the heat to medium high to get the cabbage and the onions caramelized and tender, 4-5 minutes. Add in the garlic and cook for an additional minute. Take off the heat and set aside.
Mash the potatoes and add in butter and milk and continue to mash until smooth, creamy and lump free.
Stir in the chopped bacon, sautéed cabbage and onion, and green onion. Season with salt and pepper to taste.