tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   f296bfd5cd04cbb49b8fc9585adc280ab2b58624
commit: 6e628cd3a8f78cb0dfe85353e5e488bda296bedf mptcp: use mptcp release_cb 
for delayed tasks
date:   3 months ago
config: mips-randconfig-r034-20210313 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
dfd27ebbd0eb137c9a439b7c537bb87ba903efd3)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install mips cross compiling tool for clang build
        # apt-get install binutils-mips-linux-gnu
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e628cd3a8f78cb0dfe85353e5e488bda296bedf
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 6e628cd3a8f78cb0dfe85353e5e488bda296bedf
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

>> net/mptcp/protocol.c:1568:12: warning: stack frame size of 1032 bytes in 
>> function 'mptcp_sendmsg' [-Wframe-larger-than=]
   static int mptcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
              ^
   1 warning generated.


vim +/mptcp_sendmsg +1568 net/mptcp/protocol.c

6e628cd3a8f78c Paolo Abeni      2020-11-27  1567  
d9ca1de8c0cd7a Paolo Abeni      2020-11-16 @1568  static int 
mptcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1569  {
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1570        struct mptcp_sock *msk 
= mptcp_sk(sk);
17091708d1e503 Florian Westphal 2020-05-16  1571        struct page_frag *pfrag;
6d0060f600adfd Mat Martineau    2020-01-21  1572        size_t copied = 0;
caf971df01b86f Paolo Abeni      2020-11-16  1573        int ret = 0;
6d0060f600adfd Mat Martineau    2020-01-21  1574        long timeo;
f870fa0b576884 Mat Martineau    2020-01-21  1575  
f870fa0b576884 Mat Martineau    2020-01-21  1576        if (msg->msg_flags & 
~(MSG_MORE | MSG_DONTWAIT | MSG_NOSIGNAL))
f870fa0b576884 Mat Martineau    2020-01-21  1577                return 
-EOPNOTSUPP;
f870fa0b576884 Mat Martineau    2020-01-21  1578  
e93da92896bc0d Paolo Abeni      2020-11-27  1579        mptcp_lock_sock(sk, 
__mptcp_wmem_reserve(sk, len));
1954b86016cf85 Mat Martineau    2020-02-28  1580  
1954b86016cf85 Mat Martineau    2020-02-28  1581        timeo = 
sock_sndtimeo(sk, msg->msg_flags & MSG_DONTWAIT);
1954b86016cf85 Mat Martineau    2020-02-28  1582  
1954b86016cf85 Mat Martineau    2020-02-28  1583        if ((1 << sk->sk_state) 
& ~(TCPF_ESTABLISHED | TCPF_CLOSE_WAIT)) {
1954b86016cf85 Mat Martineau    2020-02-28  1584                ret = 
sk_stream_wait_connect(sk, &timeo);
1954b86016cf85 Mat Martineau    2020-02-28  1585                if (ret)
1954b86016cf85 Mat Martineau    2020-02-28  1586                        goto 
out;
1954b86016cf85 Mat Martineau    2020-02-28  1587        }
1954b86016cf85 Mat Martineau    2020-02-28  1588  
17091708d1e503 Florian Westphal 2020-05-16  1589        pfrag = 
sk_page_frag(sk);
18b683bff89d46 Paolo Abeni      2020-03-27  1590  
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1591        while 
(msg_data_left(msg)) {
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1592                int total_ts, 
frag_truesize = 0;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1593                struct 
mptcp_data_frag *dfrag;
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1594                struct 
sk_buff_head skbs;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1595                bool 
dfrag_collapsed;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1596                size_t psize, 
offset;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1597  
57baaf2875404b Mat Martineau    2020-07-28  1598                if (sk->sk_err 
|| (sk->sk_shutdown & SEND_SHUTDOWN)) {
57baaf2875404b Mat Martineau    2020-07-28  1599                        ret = 
-EPIPE;
57baaf2875404b Mat Martineau    2020-07-28  1600                        goto 
out;
57baaf2875404b Mat Martineau    2020-07-28  1601                }
57baaf2875404b Mat Martineau    2020-07-28  1602  
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1603                /* reuse tail 
pfrag, if possible, or carve a new one from the
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1604                 * page 
allocator
fb529e62d3f3e8 Florian Westphal 2020-05-16  1605                 */
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1606                dfrag = 
mptcp_pending_tail(sk);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1607                dfrag_collapsed 
= mptcp_frag_can_collapse_to(msk, pfrag, dfrag);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1608                if 
(!dfrag_collapsed) {
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1609                        if 
(!sk_stream_memory_free(sk))
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1610                                
goto wait_for_memory;
6e628cd3a8f78c Paolo Abeni      2020-11-27  1611  
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1612                        if 
(!mptcp_page_frag_refill(sk, pfrag))
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1613                                
goto wait_for_memory;
cec37a6e41aae7 Peter Krystad    2020-01-21  1614  
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1615                        dfrag = 
mptcp_carve_data_frag(msk, pfrag, pfrag->offset);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1616                        
frag_truesize = dfrag->overhead;
72511aab95c94d Florian Westphal 2020-05-16  1617                }
6d0060f600adfd Mat Martineau    2020-01-21  1618  
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1619                /* we do not 
bound vs wspace, to allow a single packet.
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1620                 * memory 
accounting will prevent execessive memory usage
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1621                 * anyway
d5f49190def61c Paolo Abeni      2020-09-14  1622                 */
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1623                offset = 
dfrag->offset + dfrag->data_len;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1624                psize = 
pfrag->size - offset;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1625                psize = 
min_t(size_t, psize, msg_data_left(msg));
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1626                total_ts = 
psize + frag_truesize;
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1627                
__skb_queue_head_init(&skbs);
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1628                if 
(!mptcp_tx_cache_refill(sk, psize, &skbs, &total_ts))
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1629                        goto 
wait_for_memory;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1630  
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1631                if 
(!mptcp_wmem_alloc(sk, total_ts)) {
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1632                        
__skb_queue_purge(&skbs);
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1633                        goto 
wait_for_memory;
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1634                }
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1635  
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1636                
skb_queue_splice_tail(&skbs, &msk->skb_tx_cache);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1637                if 
(copy_page_from_iter(dfrag->page, offset, psize,
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1638                                
        &msg->msg_iter) != psize) {
879526030c8b5e Paolo Abeni      2020-11-27  1639                        
mptcp_wmem_uncharge(sk, psize + frag_truesize);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1640                        ret = 
-EFAULT;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1641                        goto 
out;
72511aab95c94d Florian Westphal 2020-05-16  1642                }
72511aab95c94d Florian Westphal 2020-05-16  1643  
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1644                /* data 
successfully copied into the write queue */
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1645                copied += psize;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1646                dfrag->data_len 
+= psize;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1647                frag_truesize 
+= psize;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1648                pfrag->offset 
+= frag_truesize;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1649                
WRITE_ONCE(msk->write_seq, msk->write_seq + psize);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1650  
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1651                /* charge data 
on mptcp pending queue to the msk socket
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1652                 * Note: we 
charge such data both to sk and ssk
fb529e62d3f3e8 Florian Westphal 2020-05-16  1653                 */
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1654                
sk_wmem_queued_add(sk, frag_truesize);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1655                if 
(!dfrag_collapsed) {
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1656                        
get_page(dfrag->page);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1657                        
list_add_tail(&dfrag->list, &msk->rtx_queue);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1658                        if 
(!msk->first_pending)
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1659                                
WRITE_ONCE(msk->first_pending, dfrag);
6d0060f600adfd Mat Martineau    2020-01-21  1660                }
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1661                
pr_debug("msk=%p dfrag at seq=%lld len=%d sent=%d new=%d", msk,
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1662                         
dfrag->data_seq, dfrag->data_len, dfrag->already_sent,
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1663                         
!dfrag_collapsed);
6d0060f600adfd Mat Martineau    2020-01-21  1664  
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1665                continue;
b51f9b80c032e1 Paolo Abeni      2020-03-27  1666  
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1667  wait_for_memory:
6e628cd3a8f78c Paolo Abeni      2020-11-27  1668                
set_bit(MPTCP_NOSPACE, &msk->flags);
6e628cd3a8f78c Paolo Abeni      2020-11-27  1669                
mptcp_push_pending(sk, msg->msg_flags);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1670                ret = 
sk_stream_wait_memory(sk, &timeo);
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1671                if (ret)
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1672                        goto 
out;
57040755a3e43a Paolo Abeni      2020-01-21  1673        }
6d0060f600adfd Mat Martineau    2020-01-21  1674  
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1675        if (copied) {
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1676                
msk->tx_pending_data += copied;
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1677                
mptcp_push_pending(sk, msg->msg_flags);
724cfd2ee8aa12 Paolo Abeni      2020-11-27  1678        }
d9ca1de8c0cd7a Paolo Abeni      2020-11-16  1679  
1954b86016cf85 Mat Martineau    2020-02-28  1680  out:
cec37a6e41aae7 Peter Krystad    2020-01-21  1681        release_sock(sk);
8555c6bfd5fddb Paolo Abeni      2020-08-03  1682        return copied ? : ret;
f870fa0b576884 Mat Martineau    2020-01-21  1683  }
f870fa0b576884 Mat Martineau    2020-01-21  1684  

:::::: The code at line 1568 was first introduced by commit
:::::: d9ca1de8c0cd7a8ca2a0506e1741418741848e53 mptcp: move page frag 
allocation in mptcp_sendmsg()

:::::: TO: Paolo Abeni <pab...@redhat.com>
:::::: CC: Jakub Kicinski <k...@kernel.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to