brake seems slack but pad is already close to rim This is a v-brake. I have to press the brake lever all the way down for the bike to stop, but if I try to adjust the brake arm by pulling cable out a bit more towards outside, then the pad would be touching the rim already. It seems the cable has some slack inside the tube or between the brake lever and brake arm? How do I adjust this?
Thanks
In addition to all the points Jeff is talking about in his answer, there may be a simple mismatch between your brake lever and the brake: V-brakes require the brake lever to actually pull the cable a fair distance, much more than other brake systems require. As such, if you combine a V-brake with a lever intended for some short pull brake, you will simply not be able to move the brake pads far enough.
The classic cause for such a mismatch is when your bike has been reconfigured from cantilever brakes to V-brakes some time ago, but it may also be caused by someone installing a new lever without being aware of the pull length issue.
If this is the case, the only remedy is to install a V-brake lever. You may check your brake lever whether it is actually configurable to act as a long-pull lever, but most brake levers are not configurable. Thanks to Artefacto for pointing out that there are also pull length converters. These replace the noodle of a V-brake and adjust the amount of cable action.