In this paper, we target a massive multiple-input/multiple-output (MIMO) system operating in frequency-division duplexing (FDD) mode, assuming the adoption of a two-level linear precoding strategy at the BS. We propose a novel strategy to effectively acquire the channel state information (CSI) at the base station (BS). In particular, we devise a cross-layer dynamic algorithm for user grouping, CSI acquisition and user scheduling that takes into account fairness considerations, application characteristics and quality of service (QoS) constraints of the users. We assess the merit of the proposed algorithm for a proportional fairness objective by comparing its performance with what is achieved by a relevant baseline algorithm in which user grouping is static and based only on the second order statistics, i.e., joint space division and multiplexing (JSDM). Our numerical findings illustrate that the proposed algorithm outperforms the baseline in terms of both fairness and speed of convergence to a steady state, and for different network topologies.